From 77c29857332e6572fdd102f04d9f78a67e7eb1b8 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Mon, 25 Jan 2021 11:45:48 -0700 Subject: [PATCH] add docker build script for CI --- scripts/gitlab-ci/docker-build.sh | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 scripts/gitlab-ci/docker-build.sh diff --git a/scripts/gitlab-ci/docker-build.sh b/scripts/gitlab-ci/docker-build.sh new file mode 100644 index 000000000..bf7bf30e7 --- /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 -- GitLab