diff --git a/scripts/gitlab-ci/docker-build.sh b/scripts/gitlab-ci/docker-build.sh new file mode 100644 index 0000000000000000000000000000000000000000..bf7bf30e760e0507fa7776bea287c101f96056f1 --- /dev/null +++ b/scripts/gitlab-ci/docker-build.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Script to build Docker image and push to internal registry. +## + +BUILD_ARGS=""; + +for arg in ${DOCKER_BUILD_ARGS}; do + BUILD_ARGS="${BUILD_ARGS} --build-arg ${arg}"; +done + +# Build Docker image +docker build \ + "${BUILD_ARGS}" \ + --pull \ + --tag "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:${CI_COMMIT_REF_SLUG}" \ + --file "${CI_PROJECT_DIR}/${DOCKERFILE}" \ + "${CI_PROJECT_DIR}/."; + +# Push image to internal registry +docker push "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:${CI_COMMIT_REF_SLUG}"; + +# Push latest tag +if [[ + ${CI_COMMIT_REF_SLUG} == "master" || + ${CI_COMMIT_REF_SLUG} == "production" || + -n "${CI_COMMIT_TAG}" +]]; then + docker tag \ + "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:${CI_COMMIT_REF_SLUG}" \ + "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:latest"; + docker push "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:latest"; +fi + +# Push specific tag +if [[ + -n "${CI_COMMIT_TAG}" +]]; then + docker tag \ + "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:latest" \ + "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:${CI_COMMIT_TAG}"; + docker push "${CODE_REGISTRY_IMAGE}/${IMAGE_NAME}:${CI_COMMIT_TAG}"; +fi