diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 474730e347de2cf0175aec50ee896eaa94da4db2..fb65b2474b110fd38a64a02e49022711634beef1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,19 +6,45 @@ stages:
   - deploy_wms
   - deploy_wmts
 
+variables:
+  DOCKER_TLS_CERTDIR: ""
+  DOCKER_HOST: "tcp://localhost:2375"
+  DOCKER_DRIVER: overlay2
+  HELM_EXPERIMENTAL_OCI: "1"
+  CICHART_IMAGE: "$CI_REGISTRY_IMAGE/cichart:latest"
+
+build ci:
+  stage: .pre
+  image: docker:19.03.1
+  services:
+    - docker:19.03.1-dind
+  before_script:
+    - docker info
+    - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
+    - alias helm='docker run -t --rm -e HELM_EXPERIMENTAL_OCI="$HELM_EXPERIMENTAL_OCI" -v $(pwd):/apps -w /apps -v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm -v ~/.cache/helm:/root/.cache/helm alpine/helm:3.2.3'
+    - helm registry login -u ${CI_REGISTRY_USER} -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
+    - export
+  script:
+    - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY
+    - cd ci
+    - docker build --tag $CICHART_IMAGE .
+    - docker push $CICHART_IMAGE
+  rules:
+    - changes:
+        - cichart/Dockerfile
+      when: always
+    - if: $BUILD_CI_IMAGE
+      when: always
+
 
 .get_chart_tmpl:
   stage: get_chart
-  image: docker:19.03.1
+  image: $CICHART_IMAGE
   services:
     - docker:19.03.1-dind
   tags:
     - docker
   variables:
-    DOCKER_TLS_CERTDIR: ""
-    DOCKER_HOST: "tcp://localhost:2375"
-    DOCKER_DRIVER: overlay2
-    HELM_EXPERIMENTAL_OCI: "1"
     SUBCOMP_REPOS_BASE: "https://gitlab.ssec.wisc.edu/cspp_geo/geosphere"
     # required:
     SUBCOMP_REPOS: ""
diff --git a/cichart/Dockerfile b/cichart/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5533d9e677733b725278fd4a7a4009c02a4374ff
--- /dev/null
+++ b/cichart/Dockerfile
@@ -0,0 +1,6 @@
+# Custom docker-based build image with git and other utilities added
+FROM docker:19.03.1
+
+RUN apk update && apk upgrade && \
+    apk add findutils bash curl jq git && \
+    rm -rf /var/cache/apk/*