Я использую новый экспериментальный синтаксис docker buildkit для многоэтапной сборки, например:
Dockerfile:
RUN --mount=type=cache,target=/home/build/.build-cache,gid=1000,uid=1001 ./build
bash:
DOCKER_BUILDKIT=1 docker build .
Прекрасно работает в местном масштабе. На CI я каждый раз получаю новую среду docker, поэтому нет кэширования.
Я могу экспортировать и импортировать файлы в env, но я не знаю, где находится кеш. Есть идеи?
Или я должен экспортировать / импортировать кеш с помощью какой-нибудь команды docker? Я прочитал https://docs.docker.com/engine/reference/commandline/build/#specifying -external-cache-sources и https://github.com/moby/buildkit#export -cache , но мне не ясно, какой именно buildkit специфицирует c, а какой docker специфицирует c или, если это действительно применимо к этому кешу, смонтированному в команде RUN Dockerfile.
Я добавил здесь публикуемый c список неудачного теста, демонстрирующего то, на что я надеялся: https://gist.github.com/Mahoney/85e8549892e0ae5bb86ce85339db1a71/6308f1bdb062a8982017193b96d61ec00a7698c5
И эта более поздняя редакция работает, но я не доволен ею - слишком много начальной загрузки: https://gist.github.com/Mahoney/85e8549892e0ae5bb86ce85339db1a71