diff --git a/.gitlab/ci/custom.images.yml b/.gitlab/ci/custom.images.yml index 6e14b51..95e8b7a 100644 --- a/.gitlab/ci/custom.images.yml +++ b/.gitlab/ci/custom.images.yml @@ -4,8 +4,7 @@ # Hack to set an array in /bin/sh # http://unix.stackexchange.com/a/137571 - set -- $CI_JOB_NAME - - docker pull --quiet "$CI_REGISTRY_IMAGE:$1" || true - - docker build --cache-from="$CI_REGISTRY_IMAGE:$1" -f "Dockerfile.$1" . + - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from="$CI_REGISTRY_IMAGE:$1" -f "Dockerfile.$1" . .build_and_deploy: extends: .deploy @@ -13,8 +12,7 @@ # Hack to set an array in /bin/sh # http://unix.stackexchange.com/a/137571 - set -- $CI_JOB_NAME - - docker pull --quiet "$CI_REGISTRY_IMAGE:$1" || true - - docker build --cache-from="$CI_REGISTRY_IMAGE:$1" --label "ci_pipeline_url=$CI_PIPELINE_URL" --label "ci_job_url=$CI_JOB_URL" -t "$CI_REGISTRY_IMAGE:$1" -f "Dockerfile.$1" . + - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from="$CI_REGISTRY_IMAGE:$1" --label "ci_pipeline_url=$CI_PIPELINE_URL" --label "ci_job_url=$CI_JOB_URL" -t "$CI_REGISTRY_IMAGE:$1" -f "Dockerfile.$1" . - docker push "$CI_REGISTRY_IMAGE:$1" # Used by https://gitlab.com/gitlab-org/charts/auto-deploy-app/-/blob/master/.gitlab-ci.yml diff --git a/.gitlab/ci/definitions.yml b/.gitlab/ci/definitions.yml index ff0d3ad..2d0892a 100644 --- a/.gitlab/ci/definitions.yml +++ b/.gitlab/ci/definitions.yml @@ -1,12 +1,16 @@ # Run test job always .test: stage: test + variables: + DOCKER_BUILDKIT: 1 rules: - when: always # Run build job only on a default branch when triggered manually .deploy: stage: deploy + variables: + DOCKER_BUILDKIT: 1 rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: manual diff --git a/scripts/custom-docker-build b/scripts/custom-docker-build index 00d6f30..ad30126 100755 --- a/scripts/custom-docker-build +++ b/scripts/custom-docker-build @@ -265,9 +265,7 @@ function build_custom_if_needed() { echo "Building image $build_image_name" full_image_name="$CI_REGISTRY_IMAGE:$build_image_name" - # This re-uses and builds an existing image if needed - docker pull --quiet "$full_image" || true - docker_command=$(generate_command $@ --cache-from="$full_image_name" -t "$full_image_name") + docker_command=$(generate_command $@ --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from="$full_image_name" -t "$full_image_name") echo "Docker command:" printf "\t%s" "$docker_command" eval $docker_command