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