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}" Loading
.dockerignore 0 → 100644 +4 −0 Original line number Diff line number Diff line # Created by .ignore support plugin (hsz.mobi) ** !/Dockerfile !/entrypoint.sh
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}"