From ad476fc4dcdcd05e412f1685c755303b94b81a1a Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 19 Sep 2023 14:02:25 -0600
Subject: [PATCH] add docker file for node image

---
 .gitlab-ci.yml     | 29 +++++++++++++++++++++++++++++
 .gitlab/Dockerfile |  9 +++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 .gitlab/Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 28cf12daf..29d423477 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ variables:
   BASE_HREF: nshmp
   GITLAB_TOKEN: '${CI_JOB_TOKEN}'
   IMAGE_NAME: ${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:${ENVIRONMENT}-${CI_COMMIT_SHORT_SHA}
+  NODE_IMAGE: ${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_SLUG}--node
   UPSTREAM_PATH: ghsc/nshmp/nshmp-apps
 
 image: ${CI_REGISTRY}/devops/images/usgs/node:lts
@@ -14,6 +15,7 @@ workflow:
 
 stages:
   - init
+  - node-image
   - build
   - image
   - security
@@ -152,6 +154,31 @@ Init:
     - npm ci
   stage: init
 
+####
+# Stage: Node Image
+####
+
+Build Node Image:
+  image: ${CI_REGISTRY}/devops/images/docker:20
+  needs: []
+  script:
+    - |
+      docker build \
+        --build-arg FROM_IMAGE=${CI_REGISTRY}/devops/images/usgs/node:lts \
+        --file ".gitlab/Dockerfile" \
+        --pull \
+        --tag ${NODE_IMAGE} \
+        .
+    - docker push ${NODE_IMAGE}
+  services:
+    - alias: docker
+      name: ${CI_REGISTRY}/devops/images/docker:20-dind
+  stage: node-image
+  tags:
+    - build
+  variables:
+    DOCKER_DRIVER: overlay2
+
 ####
 # Stage: Build
 ####
@@ -160,8 +187,10 @@ Build Project:
   artifacts:
     paths:
       - dist
+  image: ${NODE_IMAGE}
   needs:
     - Init
+    - Build Node Image
   script:
     - npm run build:docker
   stage: build
diff --git a/.gitlab/Dockerfile b/.gitlab/Dockerfile
new file mode 100644
index 000000000..b02f452d6
--- /dev/null
+++ b/.gitlab/Dockerfile
@@ -0,0 +1,9 @@
+ARG FROM_IMAGE=usgs/node:latest
+
+FROM ${FROM_IMAGE}
+
+USER root
+
+RUN yum install -y git
+
+USER usgs-user
-- 
GitLab