GitLab, Kaniko and Kaniko's caching mechanism
https://docs.gitlab.com/ee/ci/docker/using_kaniko.html shows how to build images with Kaniko:
build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
only:
- tagsIf one uses the shared runners provided by GitLab, building images is quite slow since caching cannot be used. The documentation for Building Docker images with GitLab and dind shows a way to speed up caching. But this solution does not work with Kaniko.
According to the Kaniko documentations one should be able to cache layers by adding the flag cache=true. So the script tag would be changed to:
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --cache=true --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAGNotice the extra --cache=true. The problem here is that it does not work. In my example the job ends in about 10 seconds with this text at the end of the log.
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image python:3.6-alpine
INFO[0001] Downloading base image p
Job's log exceeded limit of 4194304 bytes.Any suggestions on how to solve this? Is it a bug?