Как включить 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 по умолчанию.- Некоторые устаревшие флаги команд были удалены.