Как включить BuildKit с помощью docker-compose?

Я попытался export DOCKER_BUILDKIT=1 перед docker-compose buildкоманда, и я не увидел ожидаемого вывода BuildKit. Как я промахнулся?

3 ответа

Решение

Поддержка BuildKit была только что выпущена в docker-compose 1.25.0. Включить:

export DOCKER_BUILDKIT=1 # or configure in daemon.json
export COMPOSE_DOCKER_CLI_BUILD=1

С этими переменными, установленными в вашей оболочке, теперь вы можете запустить docker-compose build используя BuildKit.

Вы можете использовать эту команду, чтобы указать docker-compose использовать Docker CLI при выполнении сборки.

COMPOSE_DOCKER_CLI_BUILD=1 docker-compose build

Вы должны увидеть ту же сборку, что и обычно, но с этим предупреждением:

ВНИМАНИЕ! Собственная сборка - это экспериментальная функция, которая может быть изменена в любое время.

И вы можете сделать это, чтобы параметризовать CLI для использования BuildKit вместо построителя по умолчанию:

COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build

Версия для Windows:

set "COMPOSE_DOCKER_CLI_BUILD=1" & set "DOCKER_BUILDKIT=1" & docker-compose build

Вы также можете включить BuildKit глобально, отредактировав /etc/docker/daemon.json файл, добавив:

{ "features": { "buildkit": true } }

Для получения дополнительной информации: https://docs.docker.com/develop/develop-images/build_enhancements/

Docker Compose v2 по умолчанию поддерживает BuildKit: ссылка

Хотя большинство миграций должны быть простыми, в Compose v2 есть несколько критических изменений, которые могут повлиять на конкретные варианты использования:

  • Контейнеры теперь создаются с дефисами в именах вместо символов подчеркивания.
  • docker compose buildстроит с помощью BuildKit по умолчанию.
  • Некоторые устаревшие флаги команд были удалены.
Другие вопросы по тегам