From fb317b44ba3f402be1c8083793b6990db7345018 Mon Sep 17 00:00:00 2001 From: LoveIsGrief Date: Sat, 23 Jan 2021 22:32:10 +0100 Subject: [PATCH] CI: make sure we can build Docker image --- .gitlab-ci.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 72a273288..0eee97401 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,3 +22,41 @@ test: only: - merge_requests - tags + +# Make sure we can build a docker image +# It's cached for later jobs +build_docker: + stage: test + image: docker:19.03.12 + services: + - docker:19.03.12-dind + script: + # Try to load latest branch image from local tar or from registry + - docker load ci-exports/$CI_COMMIT_REF_SLUG.tar || docker pull $CI_REGISTRY_IMAGE:latest || true + - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:latest . + - mkdir -p ci-exports/ + - docker save $CI_REGISTRY_IMAGE:latest > ci-exports/$CI_COMMIT_REF_SLUG.tar + variables: + # When using dind service, we need to instruct docker to talk with + # the daemon started inside of the service. The daemon is available + # with a network connection instead of the default + # /var/run/docker.sock socket. Docker 19.03 does this automatically + # by setting the DOCKER_HOST in + # https://github.com/docker-library/docker/blob/d45051476babc297257df490d22cbd806f1b11e4/19.03/docker-entrypoint.sh#L23-L29 + # + # The 'docker' hostname is the alias of the service container as described at + # https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services. + # + # Specify to Docker where to create the certificates, Docker will + # create them automatically on boot, and will create + # `/certs/client` that will be shared between the service and job + # container, thanks to volume mount from config.toml + DOCKER_TLS_CERTDIR: "/certs" + # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled + DOCKER_HOST: tcp://docker:2376 + cache: + # The same key should be used across branches + key: "$CI_COMMIT_REF_SLUG" + paths: + - ci-exports/*.tar +