如何使用docker compose启用BuildKit



我在执行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/

Docker Compose v2默认支持BuildKit:链接

虽然大多数迁移都应该很简单,但Compose v2确实引入了一些可能影响特定用例的突破性更改:

  • 容器的名称中现在使用连字符而不是下划线创建
  • 默认情况下使用BuildKit生成docker compose build
  • 已删除一些不推荐使用的命令标志

最新更新