Docker Buildx cache-to: сохранить кэш сборки в registry

Категория: docker · Язык: Bash · Обновлено:

Параметры --cache-from и --cache-to позволяют Buildx читать кэш сборки из registry и сохранять туда новый. Это ускоряет CI, когда локальный кэш сборщика не переживает запуск job. Отдельный тег предназначен только для cache artifact; команда ниже записывает кэш, но не публикует собранный образ.

Импортировать и экспортировать registry cache

Bash
docker buildx build \
  --cache-from type=registry,ref=ghcr.io/example/app:buildcache \
  --cache-to type=registry,ref=ghcr.io/example/app:buildcache,mode=max \
  --tag ghcr.io/example/app:ci \
  .

Укажите доступный registry и отдельную ссылку для кэша. mode=max сохраняет промежуточные слои multi-stage сборки; без него используется min и сохраняется только кэш итоговой стадии. Для записи кэша у runner должны быть права на push в выбранный registry. Не используйте production-тег приложения в качестве cache reference.

Обычная сборка приложения и запись cache — разные операции. Здесь нет --push, поэтому собранный образ не отправляется как release. У registry cache backend есть ограничения драйвера: с драйвером docker он доступен при включённом containerd image store; иначе выберите Buildx driver, поддерживающий registry cache.

Официальная документация: Registry cache backend.