在执行 docker-compose build
命令之前,我尝试了 export DOCKER_BUILDKIT=1
,但并未看到预期的 BuildKit 输出。我错过了什么吗?
在执行 docker-compose build
命令之前,我尝试了 export DOCKER_BUILDKIT=1
,但并未看到预期的 BuildKit 输出。我错过了什么吗?
在 docker-compose 1.25.0 中刚刚发布了对BuildKit的支持。启用方法如下:
export DOCKER_BUILDKIT=1 # or configure in daemon.json
export COMPOSE_DOCKER_CLI_BUILD=1
通过在您的shell中设置这些变量,您现在可以使用BuildKit运行docker-compose build
。
在Windows中,您可以在控制台中执行:
setx DOCKER_BUILDKIT 1 # or configure in daemon.json
setx COMPOSE_DOCKER_CLI_BUILD 1
之后需要重新启动控制台
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构建镜像。- 已删除一些弃用的命令标志。
docker compose
和docker-compose
有何关联? - Andy Raydocker compose
(没有连字符)是Docker开发的一种插件,用于解决“如何在AWS的ECS上部署由docker-compose文件准备的结构”的问题,而亚马逊则认为“docker-compose是开发环境的实现细节,我们不会提供支持。我们有ECS CLI(或者最新的Copilot)”。 - Hiro