default: image: docker:latest variables: DOCKER_TLS_CERTDIR: "/certs" IMAGE_TAG: "${CI_COMMIT_REF_SLUG}" stages: - build-and-push-image - push-retagged-latest build-and-push-image: stage: build-and-push-image script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" . - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" push-retagged-latest: stage: push-retagged-latest script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker pull "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - docker tag "$CI_REGISTRY_IMAGE:$IMAGE_TAG" "$CI_REGISTRY_IMAGE:latest" - docker push "$CI_REGISTRY_IMAGE:latest" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: on_success