我在执行docker-compose build
命令之前尝试了export DOCKER_BUILDKIT=1
,但没有看到预期的BuildKit输出。我错过了什么?
对BuildKit的支持刚刚在docker compose 1.25.0中发布。启用:
export DOCKER_BUILDKIT=1 # or configure in daemon.json
export COMPOSE_DOCKER_CLI_BUILD=1
在shell中设置了这些变量后,现在可以使用BuildKit运行docker-compose build
。
在窗口中,您可以在控制台中执行:
setx DOCKER_BUILDKIT 1 # or configure in daemon.json
setx COMPOSE_DOCKER_CLI_BUILD 1
之后需要重新启动您的控制台
您可以使用此命令告诉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/
虽然大多数迁移都应该很简单,但Compose v2确实引入了一些可能影响特定用例的突破性更改:
- 容器的名称中现在使用连字符而不是下划线创建
- 默认情况下使用BuildKit生成
docker compose build
- 已删除一些不推荐使用的命令标志