Commit f3a27bcb authored by Dmitriy Safronov's avatar Dmitriy Safronov
Browse files

initial

parent 6e35b832
Loading
Loading
Loading
Loading

.dockerignore

0 → 100644
+4 −0
Original line number Diff line number Diff line
# Created by .ignore support plugin (hsz.mobi)
**
!/Dockerfile
!/entrypoint.sh

.gitlab-ci.yml

0 → 100644
+0 −0

Empty file added.

Dockerfile

0 → 100644
+14 −0
Original line number Diff line number Diff line
ARG DOCKER_REGISTRY=registry.cyberbrain.pw
FROM $DOCKER_REGISTRY/tools/docker/curl:latest

USER root

ENTRYPOINT [ "sh", "/entrypoint.sh" ]

RUN set -ex && \
    apk --no-cache add jq && \
    rm -rf /var/cache/apk/*

COPY "entrypoint.sh" "/entrypoint.sh"

USER curl_user

entrypoint.sh

0 → 100644
+33 −0
Original line number Diff line number Diff line
#!/bin/sh

# To/Die/For =)
unset TO_DIE
die() {
    RED='\033[0;31m'
    NC='\033[0m' # No Color
    echo -e "${RED}$1${NC}"
    TO_DIE=1
}
##########################################################################################################################

test -z "${CI_REGISTRY}" && die "CI_REGISTRY is missing"
test -z "${CI_REGISTRY_USER}" && die "CI_REGISTRY_USER is missing"
test -z "${CI_REGISTRY_PASSWORD}" && die "CI_REGISTRY_PASSWORD is missing"
test -z "${CI_PROJECT_PATH}" && die "CI_PROJECT_PATH is missing"
test -z "${REGISTRY_TAG_OLD}" && die "REGISTRY_TAG_OLD is missing"

test -z "${CUSTOM_IMAGENAME}" && IMAGE_PATH="${CI_PROJECT_PATH}" || IMAGE_PATH="${CI_PROJECT_PATH}/${CUSTOM_IMAGENAME}"
test -z "${REGISTRY_TAG_NEW}" && REGISTRY_TAG_NEW=latest

##########################################################################################################################
test -n "${TO_DIE}" && exit 1
##########################################################################################################################

CONTENT_TYPE="application/vnd.docker.distribution.manifest.v2+json"

TOKEN="$(curl --user "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" "${SERVER_HOST_SCHEMA:-https}://${CI_SERVER_HOST}/jwt/auth?offline_token=true&service=container_registry&scope=repository:${CI_PROJECT_PATH}:push,pull" | jq -r .token)"

MANIFEST="$(curl -H "${CONTENT_TYPE}" -H "Authorization: Bearer ${TOKEN}" "${REGISTRY_SCHEMA:-https}://${CI_REGISTRY}/v2/${IMAGE_PATH}/manifests/${REGISTRY_TAG_OLD}")"

curl -X PUT -H "Content-Type: ${CONTENT_TYPE}" -H "Authorization: Bearer ${TOKEN}" -d "${MANIFEST}" "${REGISTRY_SCHEMA:-https}://${CI_REGISTRY}/v2/${IMAGE_PATH}/manifests/${REGISTRY_TAG_NEW}" && \
echo "New image: ${CI_REGISTRY}/${IMAGE_PATH}:${REGISTRY_TAG_NEW}"