summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-02-20 15:49:05 -0700
committermo khan <mo.khan@gmail.com>2020-02-20 15:49:05 -0700
commit87bc4c78940f28e3dd5a71ca549ae595c41e8351 (patch)
tree7dcb9153ab4c07d9d3a83efbfdbc69c6c423a1b4
parentdec9ce86354cfc051f3b7b08dcf9474ef5e948a0 (diff)
Split the image
-rw-r--r--.gitlab-ci.yml16
-rw-r--r--Dockerfile23
-rw-r--r--Dockerfile.tools9
-rwxr-xr-xbin/docker-build4
4 files changed, 39 insertions, 13 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b29663d..c54db43 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,6 +4,7 @@ variables:
DOCKER_DRIVER: overlay2
MAJOR: 1
TMP_IMAGE: $CI_REGISTRY_IMAGE/tmp:$CI_COMMIT_SHA
+ TOOLS_IMAGE: $CI_REGISTRY_IMAGE/tools:$CI_COMMIT_BRANCH
include:
- template: Container-Scanning.gitlab-ci.yml
@@ -21,14 +22,25 @@ stages:
- tag
- release
+tools:
+ image: docker:stable
+ stage: .pre
+ variables:
+ script:
+ - docker info
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+ - docker pull $TOOLS_IMAGE || true
+ - docker build --cache-from $TOOLS_IMAGE -t $TOOLS_IMAGE -f Dockerfile.tools .
+ - docker push $TOOLS_IMAGE
+
build commit:
image: docker:stable
stage: build
script:
- docker info
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - docker pull $CI_REGISTRY_IMAGE:edge || true
- - docker build --cache-from $CI_REGISTRY_IMAGE:edge -t $TMP_IMAGE .
+ - docker pull $TOOLS_IMAGE || true
+ - docker build --cache-from $TOOLS_IMAGE --build-arg IMAGE_VERSION=$CI_COMMIT_BRANCH -t $TMP_IMAGE .
- docker push $TMP_IMAGE
container_scanning:
diff --git a/Dockerfile b/Dockerfile
index 5003d5b..dbb310e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,3 +1,5 @@
+ARG IMAGE_VERSION=latest
+
FROM debian:stable-slim AS gem-builder
ENV LM_HOME=/opt/license-management
WORKDIR $LM_HOME
@@ -11,17 +13,18 @@ RUN apt-get update -q \
&& apt-get install -y --no-install-recommends ruby \
&& gem build *.gemspec
-FROM debian:stable-slim AS asdf-builder
-ENV ASDF_DATA_DIR="/opt/asdf"
-ENV PATH="${PATH}:${ASDF_DATA_DIR}/shims:${ASDF_DATA_DIR}/bin"
-ENV TERM="xterm"
-ENV HOME=/root
-WORKDIR $HOME
-COPY config /root
-COPY config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc
-RUN bash /root/install.sh && bash -lc 'scrub'
+# The following stage can be extracted into a separate base image
+#FROM debian:stable-slim AS asdf-builder
+#ENV ASDF_DATA_DIR="/opt/asdf"
+#ENV PATH="${PATH}:${ASDF_DATA_DIR}/shims:${ASDF_DATA_DIR}/bin"
+#ENV TERM="xterm"
+#ENV HOME=/root
+#WORKDIR $HOME
+#COPY config /root
+#COPY config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc
+#RUN bash /root/install.sh && bash -lc 'scrub'
-FROM asdf-builder
+FROM registry.gitlab.com/gitlab-org/security-products/license-management/tools:${IMAGE_VERSION}
ENV LM_HOME=/opt/license-management
COPY --from=gem-builder /opt/license-management/*.gem $LM_HOME/
RUN bash -lc 'gem install "$LM_HOME/*.gem"'
diff --git a/Dockerfile.tools b/Dockerfile.tools
new file mode 100644
index 0000000..2bfc19a
--- /dev/null
+++ b/Dockerfile.tools
@@ -0,0 +1,9 @@
+FROM debian:stable-slim
+ENV ASDF_DATA_DIR="/opt/asdf"
+ENV PATH="${PATH}:${ASDF_DATA_DIR}/shims:${ASDF_DATA_DIR}/bin"
+ENV TERM="xterm"
+ENV HOME=/root
+WORKDIR $HOME
+COPY config /root
+COPY config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc
+RUN bash /root/install.sh && bash -lc 'scrub'
diff --git a/bin/docker-build b/bin/docker-build
index 428dda8..1a4a985 100755
--- a/bin/docker-build
+++ b/bin/docker-build
@@ -5,5 +5,7 @@ set -e
cd "$(dirname "$0")/.."
IMAGE_NAME=${IMAGE_NAME:-$(basename "$PWD"):latest}
+TOOLS_IMAGE=${TOOLS_IMAGE:-registry.gitlab.com/gitlab-org/security-products/license-management/tools:latest}
-docker build . -t "$IMAGE_NAME" --pull
+docker build -t "$TOOLS_IMAGE" -f Dockerfile.tools --pull .
+docker build --cache-from "$TOOLS_IMAGE" -t "$IMAGE_NAME" .