From 7534301b917507be31bd8228b20a696d06f841e1 Mon Sep 17 00:00:00 2001 From: Adar Nimrod Date: Wed, 13 Jan 2021 19:33:31 +0200 Subject: [PATCH] Shore Docker registry. Jobs for building and pushing to the Shore Docker image registry as well as Docker Hub. --- templates/docker.yml | 99 ++++++++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 31 deletions(-) diff --git a/templates/docker.yml b/templates/docker.yml index 71ff4a7..1baa340 100644 --- a/templates/docker.yml +++ b/templates/docker.yml @@ -5,25 +5,91 @@ variables: COMPOSE_DOCKER_CLI_BUILD: "1" DOCKER_BUILDKIT: "1" + before_script: + - &tag |- + if [ -n "${CI_COMMIT_TAG:-}" ] + then + TAG="$CI_COMMIT_TAG" + elif [ "$CI_COMMIT_BRANCH" = 'master' ] + then + TAG='latest' + else + TAG="$CI_COMMIT_BRANCH" + fi + export TAG script: - docker-compose build --no-cache --pull - - docker-compose pull --quiet + +.docker-build-hub: + image: docker:19.03 + stage: build + variables: + DOCKER_BUILDKIT: "1" + before_script: + - *tag + script: + - docker build -t "adarnimrod/$IMAGE:$TAG" ./ + +.docker-build-shore: + image: docker:19.03 + stage: build + tags: ["ns4.shore.co.il"] + variables: + DOCKER_BUILDKIT: "1" + before_script: + - *tag + script: + - docker build -t "registry.shore.co.il/$IMAGE:$TAG" ./ .compose-push: image: adarnimrod/ci-images:docker stage: deploy + tags: ["ns4.shore.co.il"] only: - branches + - tags before_script: - - docker login --username adarnimrod --password "$DOCKER_HUB_TOKEN" + - *tag + - &hub-login >- + docker + login + --username adarnimrod + --password "$DOCKER_HUB_TOKEN" script: - docker-compose push +.docker-push-hub: + image: docker:19.03 + stage: deploy + only: + - branches + - tags + before_script: + - *tag + - *hub-login + script: + - docker push "adarnimrod/$IMAGE:$TAG" + +.docker-push-shore: + image: docker:19.03 + stage: deploy + tags: ["ns4.shore.co.il"] + only: + - branches + - tags + before_script: + - *tag + script: + - docker push "registry.shore.co.il/$IMAGE:$TAG" + .compose-run: image: adarnimrod/ci-images:docker stage: deploy when: manual + before_script: + - *tag script: + - docker-compose pull --quiet - docker-compose up --detach --remove-orphans # yamllint disable rule:line-length - | @@ -34,35 +100,6 @@ done ! docker container inspect --format '{{ .State.Health.Status }}' $(docker-compose ps -q) | grep -v '^healthy$' -.docker-build: - image: docker:19.03 - stage: build - only: - - branches - variables: - DOCKER_BUILDKIT: "1" - before_script: - - &tag |- - if [ "$CI_COMMIT_BRANCH" = 'master' ] - then - TAG='latest' - else - TAG="$CI_COMMIT_BRANCH" - fi - script: - - docker build -t "adarnimrod/$IMAGE:$TAG" ./ - -.docker-push: - image: docker:19.03 - stage: deploy - only: - - branches - before_script: - - *tag - - docker login --username adarnimrod --password "$DOCKER_HUB_TOKEN" - script: - - docker push "adarnimrod/$IMAGE:$TAG" - dummy: stage: .post script: -- GitLab