diff options
| -rw-r--r-- | .gitlab-ci.yml | 16 | ||||
| -rw-r--r-- | Dockerfile | 23 | ||||
| -rw-r--r-- | Dockerfile.tools | 9 | ||||
| -rwxr-xr-x | bin/docker-build | 4 |
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: @@ -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" . |
