构建发布说明
本页面包含有关Docker Buildx的新功能、改进和错误修复的信息。
0.19.1
2024-11-27此版本的完整发布说明可在 GitHub上查看。
Bug 修复
- 撤销了在v0.19.0中添加的新对象表示法的更改,该表示法用于之前需要在Bake定义中使用CSV字符串的字段。由于在某些边缘情况下发现了向后不兼容的问题,此增强功能已被撤销。此功能现已推迟到v0.20.0版本发布。 docker/buildx#2824
0.19.0
2024-11-27此版本的完整发布说明可在 GitHub上查看。
新
现在,当您的构建需要读取或写入当前工作目录之外的文件时,Bake 要求您允许文件系统权限。 docker/buildx#2796, docker/buildx#2812.
要允许文件系统权限,请使用
--allow fs.read=标志为docker buildx bake命令。此功能目前仅在使用本地Bake定义时报告警告,但从v0.20版本开始将开始产生错误。要在当前版本中启用错误,您可以设置
BUILDX_BAKE_ENTITLEMENTS_FS=1。
增强功能
Bake 定义现在支持新的对象表示法,用于以前需要 CSV 字符串作为输入的字段。 docker/buildx#2758
注意
由于一个错误,此增强功能在 v0.19.1 中被撤销。
Bake 定义现在允许为变量定义验证条件。 docker/buildx#2794
元数据文件值现在可以包含JSON数组值。 docker/buildx#2777
在使用错误的标签格式时,改进了错误消息。 docker/buildx#2778
FreeBSD 和 OpenBSD 的工件现在已包含在发布中。 docker/buildx#2774, docker/buildx#2775, docker/buildx#2781
Bug 修复
- 修复了打印包含空Compose网络的Bake定义的问题。 docker/buildx#2790.
打包
- Compose 支持已更新至 v2.4.4。 docker/buildx#2806 docker/buildx#2780.
0.18.0
2024-10-31此版本的完整发布说明可在 GitHub上查看。
新
docker buildx inspect命令现在显示使用 TOML 文件设置的 BuildKit 守护程序配置选项。 docker/buildx#2684- 默认情况下,
docker buildx ls命令的输出现在更加紧凑,通过压缩平台列表。可以使用新的--no-trunc选项来获取完整列表。 docker/buildx#2138, docker/buildx#2717 - 现在,
docker buildx prune命令支持新的--max-used-space和--min-free-space过滤器,适用于 BuildKit v0.17.0+ 构建器。 docker/buildx#2766
增强功能
- 允许使用
pprof捕获CPU和内存配置文件,通过BUILDX_CPU_PROFILE和BUILDX_MEM_PROFILE环境变量。 docker/buildx#2746 - 从标准输入的最大Dockerfile大小已增加。 docker/buildx#2716, docker/buildx#2719
- 内存分配已减少。 docker/buildx#2724, docker/buildx#2713
docker buildx bake的--list-targets和--list-variables标志不再需要初始化构建器。 docker/buildx#2763
Bug 修复
- 现在检查警告时会打印出违规Dockerfile的完整文件路径,相对于当前工作目录。 docker/buildx#2672
--check和--call选项的回退图像已更新以更正引用。 docker/buildx#2705- 修复实验模式下构建详情链接不显示的问题。 docker/buildx#2722
- 修复了Bake无效目标链接的验证问题。 docker/buildx#2700
- 修复运行无效命令时缺少错误信息的问题。 docker/buildx#2741
- 修复了在
--call请求中可能出现的本地状态错误警告。 docker/buildx#2754 - 修复在Bake中使用链接目标时可能出现的权限问题。 docker/buildx#2701
- 修复在使用
sudo运行Buildx后访问本地状态时可能出现的权限问题。 docker/buildx#2745
包装
- Compose 兼容性已更新至 v2.4.1。 docker/buildx#2760
0.17.1
2024-09-13此版本的完整发布说明可在 GitHub上查看。
Bug 修复
- 如果在BuildKit配置文件中设置了权限,则不要在创建构建器时自动为
docker-container和kubernetes驱动程序设置network.host权限标志。 docker/buildx#2685 - 当
network字段为空时,不要使用docker buildx bake --print打印该字段。 docker/buildx#2689 - 修复WSL2下的遥测套接字路径。 docker/buildx#2698
0.17.0
2024-09-10此版本的完整发布说明可在 GitHub上查看。
新
- 向Bake添加
basename、dirname和sanitize函数。 docker/buildx#2649 - 启用对Bake授权的支持,以允许在构建期间执行特权操作。 docker/buildx#2666
增强功能
- 为Bake命令引入CLI指标跟踪。 docker/buildx#2610
- 在所有构建命令中添加
--debug。以前,它仅在顶层的docker和docker buildx命令中可用。 docker/buildx#2660 - 允许从标准输入构建多节点构建器。 docker/buildx#2656
- 改进
kubernetes驱动初始化。 docker/buildx#2606 - 在使用Bake构建多个目标时,在错误信息中包含目标名称。 docker/buildx#2651
- 优化指标处理以减少进度跟踪期间的性能开销。 docker/buildx#2641
- 在完成规则检查后显示警告的数量。 docker/buildx#2647
- 跳过前端方法的构建引用和来源元数据。 docker/buildx#2650
- 在Bake文件(HCL和JSON)中添加支持设置网络模式。 docker/buildx#2671
- 支持在设置
--call标志时使用--metadata-file标志。 docker/buildx#2640 - 为多个Bake目标使用的本地上下文使用共享会话。 docker/buildx#2615, docker/buildx#2607, docker/buildx#2663
Bug 修复
- 改进内存管理以避免不必要的分配。 docker/buildx#2601
包装更新
- Compose 支持已更新至 v2.1.6。 docker/buildx#2547
0.16.2
2024-07-25此版本的完整发布说明可在 GitHub上查看。
Bug 修复
- 修复将本地缓存导出到NFS卷时可能出现的“坏文件描述符”错误 docker/buildx#2629
0.16.1
2024-07-18此版本的完整发布说明可在 GitHub上查看。
Bug 修复
- 修复由于
buildx bake --print命令中的数据竞争可能导致的崩溃 docker/buildx#2603 - 改进关于使用
--debug标志检查构建警告的消息 docker/buildx#2612
0.16.0
2024-07-11此版本的完整发布说明可在 GitHub上查看。
新
- Bake 命令现在支持
--call和--check标志以及目标定义中的call属性,用于选择自定义前端方法。 docker/buildx#2556, docker/buildx#2576 - 实验性
Bake 现在支持
--list-targets和--list-variables标志,用于检查项目的定义和可能的配置选项。 docker/buildx#2556 - 烘焙定义变量和目标支持新的
description属性,用于定义基于文本的描述,可以使用例如--list-targets和--list-variables进行检查。 docker/buildx#2556 - Bake 现在支持为构建检查违规打印警告。 docker/buildx#2501
增强功能
- 构建命令现在确保多节点构建为每个节点使用相同的构建引用。 docker/buildx#2572
- 避免重复请求并提高远程驱动程序的性能。 docker/buildx#2501
- 现在可以通过设置环境变量
BUILDX_METADATA_WARNINGS=1将构建警告保存到元数据文件中。 docker/buildx#2551, docker/buildx#2521, docker/buildx#2550 - 当未检测到警告时,改进
--check标志的消息。 docker/buildx#2549
Bug 修复
- 修复构建期间对多类型注释的支持。 docker/buildx#2522
- 修复了一个回归问题,即在切换项目时,由于增量传输的重用,可能会导致文件传输效率低下。 docker/buildx#2558
- 修复了链式烘焙目标的默认加载错误。 docker/buildx#2583
- 修复了Bake中
COMPOSE_PROJECT_NAME处理不正确的问题。 docker/buildx#2579 - 修复多节点构建的索引注释支持。 docker/buildx#2546
- 修复从远程上下文构建时捕获的出处元数据。 docker/buildx#2560
包装更新
- Compose 支持已更新至 v2.1.3。 docker/buildx#2547
0.15.1
2024-06-18此版本的完整发布说明可在 GitHub上查看。
Bug 修复
- 修复了使用
--check时某些验证请求缺少构建错误和退出代码的问题。 docker/buildx#2518 - 更新
--check的回退镜像为 Dockerfile v1.8.1。 docker/buildx#2538
0.15.0
2024-06-11此版本的完整发布说明可在 GitHub上查看。
新
新的
--call选项允许为构建设置评估方法,取代了之前的实验性--print标志。 docker/buildx#2498, docker/buildx#2487, docker/buildx#2513除了默认的
build方法外,Dockerfile前端还实现了以下方法:--call=check: Run validation routines for your build configuration. For more information about build checks, see 构建检查--call=outline: Show configuration that would be used by current build, including all build arguments, secrets, SSH mounts, etc., that your build would use.--call=targets: Show all available targets and their descriptions.
新的
--prefer-index标志已添加到docker buildx imagetools create命令中,用于控制从单一平台镜像清单创建镜像的行为。 docker/buildx#2482现在,
kubernetes驱动支持一个timeout选项来配置部署超时。 docker/buildx#2492已为构建警告类型添加了新的指标定义。 docker/buildx#2482, docker/buildx#2507
现在,
buildx prune和buildx du命令支持负数和前缀过滤器。docker/buildx#2473使用Bake构建Compose文件现在支持传递SSH转发配置。 docker/buildx#2445
修复了使用自定义TLS证书配置
kubernetes驱动程序的问题。 docker/buildx#2454修复加载节点时的并发kubeconfig访问问题。 docker/buildx#2497
包装更新
- Compose 支持已更新至 v2.1.2。 docker/buildx#2502, docker/buildx#2425
0.14.0
2024-04-18此版本的完整发布说明可在 GitHub上查看。
增强功能
- 添加对
--print=lint的支持(实验性)。 docker/buildx#2404, docker/buildx#2406 - 修复前端中自定义实现的打印子请求的JSON格式。 docker/buildx#2374
- 现在在使用
--metadata-file构建时设置来源记录。 docker/buildx#2280 - 添加 Git 认证支持 用于远程定义。 docker/buildx#2363
- 新增
default-load驱动选项,适用于docker-container、remote和kubernetes驱动,默认将构建结果加载到 Docker 引擎镜像存储中。 docker/buildx#2259 - 添加
requests.ephemeral-storage,limits.ephemeral-storage和schedulername选项到kubernetes驱动. docker/buildx#2370, docker/buildx#2415 - 为
docker-bake.hcl文件添加indexof函数。 docker/buildx#2384 - Buildx 的 OpenTelemetry 指标现在可以测量构建期间空闲时间、镜像导出、运行操作和镜像传输的持续时间。 docker/buildx#2316, docker/buildx#2317, docker/buildx#2323, docker/buildx#2271
- 将构建进度指标发送到与
desktop-linux上下文关联的OpenTelemetry端点不再需要在实验模式下使用Buildx(BUILDX_EXPERIMENTAL=1)。 docker/buildx#2344
Bug 修复
- 修复了当与多个Bake文件定义一起使用时,
--load和--push错误地覆盖输出的问题。 docker/buildx#2336 - 修复在启用实验模式时从标准输入构建的问题。 docker/buildx#2394
- 修复了一个问题,其中委托的跟踪可能会被重复。 docker/buildx#2362
包装更新
- Compose 支持已更新至
v2.26.1
(通过
compose-gov2.0.2)。 docker/buildx#2391
0.13.1
2024-03-13此版本的完整发布说明可在 GitHub上查看。
Bug 修复
- 修复连接到
docker-container://和kube-pod://样式URL时使用远程驱动的问题。 docker/buildx#2327 - 修复了当目标已经定义了非图像输出时,使用Bake处理
--push的问题。 docker/buildx#2330
0.13.0
2024-03-06此版本的完整发布说明可在 GitHub上查看。
新
- 新增
docker buildx dial-stdio命令,用于直接联系配置的构建器实例的 BuildKit 守护进程。 docker/buildx#2112 - 现在可以使用
remote驱动程序和npipe连接创建Windows容器构建器。 docker/buildx#2287 - Windows 现在支持 Npipe URL 方案。 docker/buildx#2250
- 实验性 Buildx 现在可以导出 OpenTelemetry 指标,用于构建持续时间和传输大小。 docker/buildx#2235, docker/buildx#2258 docker/buildx#2225 docker/buildx#2224 docker/buildx#2155
增强功能
- Bake 命令现在支持定义
shm-size和ulimit值。 docker/buildx#2279, docker/buildx#2242 - 更好地处理与不健康节点的远程驱动连接。 docker/buildx#2130
- 使用
docker-container和kubernetes驱动程序的构建器现在默认允许network.host权限(允许访问容器的网络)。 docker/buildx#2266 - 现在可以使用单个命令构建多个输出(需要BuildKit v0.13+)。 docker/buildx#2290, docker/buildx#2302
- 默认的 Git 仓库路径现在通过配置的跟踪分支找到。 docker/buildx#2146
- 修复在使用Bake中的链接目标时可能出现的缓存失效问题。 docker/buildx#2265
- 修复了WSL中Git仓库路径的清理问题。 docker/buildx#2167
- 现在可以通过单个命令移除多个构建器。 docker/buildx#2140
- 通过Unix套接字处理新的取消信号。 docker/buildx#2184 docker/buildx#2289
- Compose 规范支持已更新至 v2.0.0-rc.8。 docker/buildx#2205
docker buildx create的--config标志已重命名为--buildkitd-config。 docker/buildx#2268docker buildx build的--metadata-file标志现在还可以返回可用于进一步构建调试的构建引用,例如在 Docker Desktop 中。 docker/buildx#2263docker buildx bake命令现在为所有目标共享相同的认证提供者,以提高性能。 docker/buildx#2147docker buildx imagetools inspect命令现在显示 DSSE 签名的 SBOM 和 Provenance 证明。 docker/buildx#2194docker buildx ls命令现在支持--format选项来控制输出。 docker/buildx#1787docker-container驱动程序现在支持用于定义 BuildKit 容器重启策略的驱动程序选项。 docker/buildx#1271- 从Buildx导出的VCS属性现在包括本地目录子路径,如果它们相对于当前Git仓库。 docker/buildx#2156
--add-host标志现在允许使用=分隔符来表示 IPv6 地址。 docker/buildx#2121
Bug 修复
- 修复使用
--progress=rawjson导出进度时的额外输出 docker/buildx#2252 - 修复Windows上可能的控制台警告。 docker/buildx#2238
- 修复在使用Bake与多个配置时可能出现的配置合并顺序不一致的问题。 docker/buildx#2237
- 修复了在
docker buildx imagetools create命令中可能出现的崩溃问题。 docker/buildx#2230
0.12.1
2024-01-12此版本的完整发布说明可在GitHub上查看。
Bug修复和增强
- 修复了一些
--driver-opt值的错误验证,这些错误可能导致恐慌并存储损坏的状态。 docker/buildx#2176
0.12.0
2023-11-16此版本的完整发布说明可在 GitHub上查看。
新
- 新增
--annotation标志用于buildx build,以及在 Bake 文件中新增annotations键,允许您为构建结果添加 OCI 注释。 #2020, #2098 - 新的实验性调试功能,包括一个新的
debug命令和一个交互式调试控制台。 此功能目前需要设置BUILDX_EXPERIMENTAL=1。 #2006, #1896, #1970, #1914, #2026, #2086
Bug fixes and enhancements
- 特殊的
host-gatewayIP 映射现在可以在构建时与--add-host标志一起使用。 #1894, #2083 - Bake 现在允许在从远程定义构建时添加本地源文件。 #1838
- 现在在进度条上交互式显示将构建结果上传到Docker的状态。 #1994
- 在引导多节点构建集群时,错误处理已得到改进。 #1869
buildx imagetools create命令现在允许在注册表中创建新镜像时添加注释。 #1965- 现在可以通过Docker和Remote驱动程序从buildx构建OpenTelemetry跟踪委托。 #2034
- Bake 命令现在会在进度条上显示所有加载构建定义的文件。 #2076
- Bake 文件现在允许在多个定义文件中定义相同的属性。 #1062
- 使用Bake命令与远程定义现在允许此定义使用本地Dockerfiles。 #2015
- Docker 容器驱动程序现在明确设置了 BuildKit 配置路径,以确保从相同位置加载配置,无论是主线镜像还是无根镜像。 #2093
- 提高检测BuildKit实例完成启动的性能。 #1934
- 容器驱动程序现在接受许多新的驱动程序选项,用于定义BuildKit容器的资源限制。 #2048
- 检查命令的格式化已得到改进。 #2068
- 关于驱动程序能力的错误信息已得到改进。 #1998
- 在没有目标的情况下调用Bake命令时改进错误。 #2100
- 允许在独立模式下运行时通过环境变量启用调试日志。 #1821
- 使用Docker驱动程序时,默认的镜像解析模式已更新为优先使用本地Docker镜像以保持向后兼容性。 #1886
- Kubernetes 驱动程序现在允许为 BuildKit 部署和 pod 设置自定义注释和标签。 #1938
- Kubernetes 驱动程序现在允许通过端点配置设置认证令牌。 #1891
- 修复了Bake中可能导致构建失败或目标本地源多次上传的链式目标问题。 #2113
- 修复在使用Bake命令的矩阵功能时访问全局目标属性的问题。 #2106
- 修复某些构建标志的格式验证问题 #2040
- 修复以避免在启动构建节点时不必要地锁定某些命令。 #2066
- 修复多个构建尝试并行引导同一构建器实例的情况。 #2000
- 修复在某些情况下上传构建结果到Docker时可能丢失的错误。 #1927
- 修复基于构建输出检测缺失认证支持的能力。 #1988
- 修复了加载Bake远程定义的构建,使其不会显示在构建历史记录中。 #1961, #1954
- 修复在使用Bake定义配置文件构建Compose文件时的错误。 #1903
- 修复进度条上可能出现的时间校正错误。 #1968
- 修复了将自定义cgroup父级传递给使用新控制器接口的构建的问题。 #1913
包装
0.11.2
2023-07-18此版本的完整发布说明可在 GitHub上查看。
Bug修复和增强
- 修复了一个导致buildx无法从实例存储中读取
KUBECONFIG路径的回归问题。 docker/buildx#1941 - 修复了一个回归问题,该问题导致结果句柄构建错误地显示在构建历史中。 docker/buildx#1954
0.11.1
2023-07-05此版本的完整发布说明可在 GitHub上查看。
错误修复和增强功能
- 修复了bake中的一个回归问题,其中配置文件中的服务不会被加载。 docker/buildx#1903
- 修复了一个回归问题,其中
--cgroup-parent选项在构建期间没有效果。 docker/buildx#1913 - 修复了一个回归问题,其中有效的docker上下文可能会失败buildx构建器名称验证。 docker/buildx#1879
- 修复在构建过程中调整终端大小时可能出现的崩溃问题。 docker/buildx#1929
0.11.0
2023-06-13此版本的完整发布说明可在 GitHub上查看。
新
- Bake 现在支持
矩阵构建。
target上的新矩阵字段允许您创建多个类似的目标,以减少 bake 文件中的重复。 docker/buildx#1690 - 新的实验性
--detach标志,用于在分离模式下运行构建。 docker/buildx#1296, docker/buildx#1620, docker/buildx#1614, docker/buildx#1737, docker/buildx#1755 - 新的实验性 调试监控模式 允许你在构建中启动调试会话。 docker/buildx#1626, docker/buildx#1640
- 新增
EXPERIMENTAL_BUILDKIT_SOURCE_POLICY环境变量 用于应用 BuildKit 源策略文件。 docker/buildx#1628
Bug修复和增强功能
--load现在支持在启用 containerd 镜像存储时加载多平台镜像。 docker/buildx#1813- 构建进度输出现在显示正在使用的构建器的名称。 docker/buildx#1177
- Bake 现在支持检测
compose.{yml,yaml}文件。 docker/buildx#1752 - Bake 现在支持新的 compose 构建键
dockerfile_inline和additional_contexts。 docker/buildx#1784 - Bake 现在支持替换 HCL 函数。 docker/buildx#1720
- Bake 现在允许将多个类似的认证参数合并为一个参数,以便使用单个全局值进行覆盖。 docker/buildx#1699
- 初步支持 shell 自动补全。 docker/buildx#1727
- BuildKit 版本现在在使用
docker驱动程序的构建器中正确显示在buildx ls和buildx inspect中。 docker/buildx#1552 - 在buildx检查视图中显示额外的构建器节点详细信息。 docker/buildx#1440, docker/buildx#1854
- 使用
remote驱动程序的构建者允许使用TLS而无需提供自己的密钥/证书(如果BuildKit远程配置为支持它) docker/buildx#1693 - 使用
kubernetes驱动程序的构建器支持一个新的serviceaccount选项, 该选项设置Kubernetes pod的serviceAccountName。 docker/buildx#1597 - 使用
kubernetes驱动程序的构建器支持kubeconfig文件中的proxy-url选项。 docker/buildx#1780 - 使用
kubernetes的构建器现在如果没有明确提供名称,则会自动分配一个节点名称。 docker/buildx#1673 - 修复在Windows上为
docker-container驱动程序写入证书时路径无效的问题。 docker/buildx#1831 - 修复了在使用SSH访问远程bake文件时bake失败的问题。 docker/buildx#1711, docker/buildx#1734
- 修复当远程烘焙上下文错误解析时导致的烘焙失败问题。 docker/buildx#1783
- 修复在bake上下文中
BAKE_CMD_CONTEXT和cwd://路径的解析问题。 docker/buildx#1840 - 修复在使用
buildx imagetools create创建镜像时混合OCI和Docker媒体类型的问题。 docker/buildx#1797 - 修复了
--iidfile和-q之间图像ID不匹配的问题。 docker/buildx#1844 - 修复在混合使用静态凭证和IAM配置文件时的AWS认证问题。 docker/buildx#1816
0.10.4
2023-03-06注意
Buildx v0.10 支持最小化的 SLSA Provenance 证明,这需要支持 OCI兼容 多平台镜像。这可能会引入注册表和运行时支持的问题 (例如 Google Cloud Run 和 AWS Lambda)。 你可以选择使用
--provenance=false来禁用默认的证明功能。
Bug修复和增强
- 添加
BUILDX_NO_DEFAULT_ATTESTATIONS作为--provenance false的替代方案。 docker/buildx#1645 - 默认情况下禁用脏Git检出检测以提高性能。可以通过
BUILDX_GIT_CHECK_DIRTY选项启用。 docker/buildx#1650 - 在发送到BuildKit之前,从VCS提示URL中剥离凭据。 docker/buildx#1664
0.10.3
2023-02-16注意
Buildx v0.10 启用了对最小化 SLSA Provenance 的支持,这需要 OCI兼容 多平台镜像的支持。这可能会引入注册表和运行时支持的问题 (例如 Google Cloud Run 和 AWS Lambda)。 你可以选择使用
--provenance=false来禁用默认的 provenance 认证功能。
Bug fixes and enhancements
- 修复在收集Git来源信息时的可达提交和警告。 docker/buildx#1592, docker/buildx#1634
- 修复了一个回归问题,其中docker上下文未被验证。 docker/buildx#1596
- 修复使用JSON bake定义的函数解析问题。 docker/buildx#1605
- 修复原始HCL烘焙诊断被丢弃的情况。 docker/buildx#1607
- 修复在使用bake和compose文件时未正确设置的标签。 docker/buildx#1631
0.10.2
2023-01-30注意
Buildx v0.10 支持最小化的 SLSA Provenance 证明,这需要支持 OCI兼容 多平台镜像。这可能会引入注册表和运行时支持的问题 (例如 Google Cloud Run 和 AWS Lambda)。 你可以选择使用
--provenance=false来禁用默认的证明功能。
Bug修复和增强功能
- 修复在多节点构建中未考虑首选平台顺序的问题。 docker/buildx#1561
- 修复处理
SOURCE_DATE_EPOCH环境变量时可能出现的panic。 docker/buildx#1564 - 修复自BuildKit v0.11以来在某些注册表上多节点清单合并时可能出现的推送错误。 docker/buildx#1566
- 改进收集Git来源信息的警告。 docker/buildx#1568
0.10.1
2023-01-27注意
Buildx v0.10 支持最小化的 SLSA Provenance 证明,这需要支持 OCI兼容 多平台镜像。这可能会引入注册表和运行时支持的问题 (例如 Google Cloud Run 和 AWS Lambda)。 你可以选择使用
--provenance=false来禁用默认的证明功能。
错误修复和增强功能
- 修复发送正确的原始URL作为
vsc:source元数据。 docker/buildx#1548 - 修复可能由数据竞争引起的恐慌。 docker/buildx#1504
- 修复了
rm --all-inactive的回归问题。 docker/buildx#1547 - 通过延迟加载数据改进
imagetools inspect中的认证访问。 docker/buildx#1546 - 正确标记功能请求为内部。 docker/buildx#1538
- 检测无效的认证配置。 docker/buildx#1545
- 更新 containerd 补丁以修复可能影响
imagetools命令的推送回归问题。 docker/buildx#1559
0.10.0
2023-01-10注意
Buildx v0.10 支持最小化的 SLSA Provenance 证明,这需要支持 OCI兼容 多平台镜像。这可能会引入注册表和运行时支持的问题 (例如 Google Cloud Run 和 AWS Lambda)。 你可以选择使用
--provenance=false来禁用默认的证明功能。
新
buildx build命令支持新的--attest标志,以及简写--sbom和--provenance,用于为当前构建添加证明。 docker/buildx#1412 docker/buildx#1475- 当使用支持来源证明的BuildKit构建时,Buildx将自动共享构建上下文的版本控制信息,以便在后续调试中显示在来源证明中。以前,这仅在直接从Git URL构建时发生。要选择退出此行为,您可以设置
BUILDX_GIT_INFO=0。您还可以通过设置BUILDX_GIT_LABELS=1自动定义带有VCS信息的标签。 docker/buildx#1462, docker/buildx#1297, docker/buildx#1341, docker/buildx#1468, docker/buildx#1477 - 使用
--build-context命名的上下文现在支持oci-layout://协议,用于使用本地OCI布局目录的值初始化上下文。 例如:--build-context stagename=oci-layout://path/to/dir。此功能需要BuildKit v0.11.0+和Dockerfile 1.5.0+。 docker/buildx#1456 - Bake 现在支持 资源插值 ,您可以重用其他目标定义中的值。 docker/buildx#1434
- Buildx 现在会自动转发
SOURCE_DATE_EPOCH环境变量,如果它在您的环境中定义。此功能旨在与更新的 可重现构建 在 BuildKit v0.11.0+ 中的支持一起使用。 docker/buildx#1482 - Buildx 现在会记住构建器的最后活动,以便更好地组织构建器实例。 docker/buildx#1439
- Bake 定义现在支持为 variables 和 labels 使用 Dockerfile 中设置的默认值,为构建参数和标签提供空值。 docker/buildx#1449
- 现在,
buildx imagetools inspect命令支持显示SBOM和来源数据。 docker/buildx#1444, docker/buildx#1498 - 提高
ls命令的性能并检查流程。 docker/buildx#1430, docker/buildx#1454, docker/buildx#1455, docker/buildx#1345 - 使用
Docker 驱动程序 添加额外主机现在支持
Docker 特定的
host-gateway特殊值。 docker/buildx#1446 - OCI exporter 现在支持
tar=false选项,用于直接在目录中导出 OCI 格式。 docker/buildx#1420
升级
- 更新了Compose规范至1.6.0。 docker/buildx#1387
错误修复和增强功能
--invoke现在可以从镜像元数据加载默认的启动环境。 docker/buildx#1324- 修复容器驱动程序在UserNS方面的行为。 docker/buildx#1368
- 修复在使用错误变量值类型时,Bake可能出现的崩溃问题。 docker/buildx#1442
- 修复
imagetools inspect中可能出现的崩溃问题。 docker/buildx#1441 docker/buildx#1406 - 修复默认情况下向BuildKit发送空的
--add-host值的问题。 docker/buildx#1457 - 修复处理带有进度组的进度前缀。 docker/buildx#1305
- 修复在Bake中递归解析组的问题。 docker/buildx#1313
- 修复多节点构建器清单中可能出现的错误缩进。 docker/buildx#1396
- 修复可能由于缺少OpenTelemetry配置而导致的崩溃。 docker/buildx#1383
- 修复当TTY不可用时
--progress=tty的行为。 docker/buildx#1371 - 修复
prune和du命令中的连接错误情况。 docker/buildx#1307
0.9.1
2022-08-18Bug fixes and enhancements
inspect命令现在显示正在使用的 BuildKit 版本。 docker/buildx#1279- 修复了在构建包含没有构建块服务的Compose文件时的回归问题。 docker/buildx#1277
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.9.0
2022-08-17新
- 支持一个新的
remote驱动程序,您可以使用它来连接任何已经运行的BuildKit实例。 docker/buildx#1078, docker/buildx#1093, docker/buildx#1094, docker/buildx#1103, docker/buildx#1134, docker/buildx#1204 - 您现在可以从标准输入加载Dockerfile,即使构建上下文来自外部Git或HTTP URL。 docker/buildx#994
- 构建命令现在支持新的构建上下文类型
oci-layout://,用于加载 从本地OCI布局目录加载构建上下文。 请注意,此功能依赖于尚未发布的BuildKit功能,并且需要使用来自moby/buildkit:master的构建器实例,直到BuildKit v0.11发布。 docker/buildx#1173 - 您现在可以使用新的
--print标志来运行由BuildKit前端支持的辅助函数,执行构建并打印其结果。您可以在Dockerfile中使用此功能来显示当前构建支持的构建参数和机密,使用--print=outline,并列出所有可用的Dockerfile阶段,使用--print=targets。此功能是实验性的,用于收集早期反馈,并需要启用BUILDX_EXPERIMENTAL=1环境变量。我们计划在未来更新/扩展此功能,而不保持向后兼容性。 docker/buildx#1100, docker/buildx#1272 - 您现在可以使用新的
--invoke标志从构建结果启动交互式容器,以进行交互式调试循环。您可以通过代码更改重新加载这些容器,或从特殊的监视模式将它们恢复到初始状态。此功能是实验性的,用于收集早期反馈,并需要启用BUILDX_EXPERIMENTAL=1环境变量。我们计划在未来更新/扩展此功能,而无需启用向后兼容性。 docker/buildx#1168, docker/buildx#1257, docker/buildx#1259 - Buildx 现在可以理解环境变量
BUILDKIT_COLORS和NO_COLOR来自定义/禁用交互式构建进度条的颜色。 docker/buildx#1230, docker/buildx#1226 buildx ls命令现在显示每个构建器实例的当前 BuildKit 版本。 docker/buildx#998bake命令现在在构建 Compose 文件时会自动加载.env文件以确保兼容性。 docker/buildx#1261- Bake 现在支持带有
cache_to定义的 Compose 文件。 docker/buildx#1155 - Bake 现在支持新的内置函数
timestamp()来访问当前时间。 docker/buildx#1214 - Bake 现在支持 Compose 构建秘密定义。 docker/buildx#1069
- 现在在Compose文件中通过
x-bake支持额外的构建上下文配置。 docker/buildx#1256 - 检查构建器现在显示当前驱动程序选项配置。 docker/buildx#1003, docker/buildx#1066
更新
- 更新了Compose规范至1.4.0。 docker/buildx#1246, docker/buildx#1251
Bug修复和增强
buildx ls命令的输出已更新,以便更好地访问来自不同构建器的错误。 docker/buildx#1109buildx create命令现在对构建器参数进行额外的验证,以避免创建具有无效配置的构建器实例。 docker/buildx#1206buildx imagetools create命令现在可以创建新的多平台镜像,即使源子镜像位于不同的仓库或注册表。 docker/buildx#1137- 您现在可以设置默认的构建器配置,该配置在创建构建器实例时使用,而无需传递自定义的
--config值。 docker/buildx#1111 - Docker 驱动程序现在可以检测
dockerd实例是否支持最初禁用的 Buildkit 功能,如多平台镜像。 docker/buildx#1260, docker/buildx#1262 - 使用名称中包含
.的目标的Compose文件现在被转换为使用_,以便选择器键仍然可以在这些目标中使用。 docker/buildx#1011 - 包含了一个额外的验证,用于检查有效的驱动程序配置。 docker/buildx#1188, docker/buildx#1273
remove命令现在会显示被移除的构建器,并禁止移除上下文构建器。 docker/buildx#1128- 在使用Kubernetes驱动时启用Azure身份验证。 docker/buildx#974
- 为kubernetes驱动添加容忍处理。 docker/buildx#1045 docker/buildx#1053
- 在
kubernetes驱动程序中,使用securityContext替换已弃用的seccomp注释。 docker/buildx#1052 - 修复处理带有nil平台的清单时的panic问题。 docker/buildx#1144
- 修复使用
prune命令时的持续时间过滤器问题。 docker/buildx#1252 - 修复在Bake定义中合并多个JSON文件的问题。 docker/buildx#1025
- 修复了从Docker上下文创建的隐式构建器存在无效配置或连接断开的问题。 docker/buildx#1129
- 修复在使用命名上下文时显示无输出警告的条件。 docker/buildx#968
- 修复当构建器实例和docker上下文具有相同名称时重复构建器的问题。 docker/buildx#1131
- 修复打印不必要的SSH警告日志。 docker/buildx#1085
- 修复在使用带有Bake JSON定义的空变量块时可能出现的panic问题。 docker/buildx#1080
- 修复图像工具命令未正确处理
--builder标志的问题。 docker/buildx#1067 - 修复了与无根选项一起使用自定义镜像的问题。 docker/buildx#1063
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.8.2
2022-04-04更新
- 更新
buildx bake使用的Compose规范到v1.2.1,以修复解析端口定义的问题。 docker/buildx#1033
Bug fixes and enhancements
- 修复处理来自BuildKit v0.10的进度流时可能发生的崩溃。 docker/buildx#1042
- 修复在
buildx bake中解析组时,当组已被父组加载时的问题。 docker/buildx#1021
有关更多详细信息,请参阅Buildx GitHub 仓库中的完整发布说明。
0.8.1
2022-03-21Bug fixes and enhancements
- 修复处理构建上下文扫描错误时可能出现的恐慌。 docker/buildx#1005
- 允许在
buildx bake中的Compose目标名称上使用.以保持向后兼容性。 docker/buildx#1018
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.8.0
2022-03-09新
- 构建命令现在接受
--build-context标志,用于 定义额外的命名构建上下文 为您的构建。 docker/buildx#904 - Bake 定义现在支持 定义目标之间的依赖关系 并在另一个构建中使用一个目标的结果。 docker/buildx#928, docker/buildx#965, docker/buildx#963, docker/buildx#962, docker/buildx#981
imagetools inspect现在接受--format标志,允许访问特定图像的配置和构建信息。 docker/buildx#854, docker/buildx#972- 新标志
--no-cache-filter允许配置构建,使其仅忽略指定 Dockerfile 阶段的缓存。 docker/buildx#860 - 构建现在可以显示由构建前端设置的警告摘要。 docker/buildx#892
- 新的构建参数
BUILDKIT_INLINE_BUILDINFO_ATTRS允许选择将构建属性嵌入到生成的镜像中。 docker/buildx#908 - 新标志
--keep-buildkitd允许在移除构建器时保持 BuildKit 守护进程运行
Bug fixes and enhancements
--metadata-file输出现在支持嵌入的结构类型。 docker/buildx#946buildx rm现在接受新标志--all-inactive,用于移除所有当前未运行的构建器。 docker/buildx#885- 代理配置现在从Docker配置文件中读取,并与构建请求一起发送以保持向后兼容性。 docker/buildx#959
- 在Compose中支持主机网络。 docker/buildx#905, docker/buildx#880
- 现在可以使用
-f -从标准输入读取Bake文件。 docker/buildx#864 --iidfile现在总是独立于使用的驱动程序写入镜像配置摘要(使用--metadata-file获取摘要)。 docker/buildx#980- Bake 中的目标名称现在被限制为不能使用特殊字符。 docker/buildx#929
- 使用
docker驱动程序推送时,可以从元数据中读取图像清单摘要。 docker/buildx#989 - 修复Compose文件中环境文件的处理。 docker/buildx#905
- 在
du命令中显示最后访问时间。 docker/buildx#867 - 修复当多个Bake目标运行相同的构建步骤时可能出现的双重输出日志问题。 docker/buildx#977
- 修复在多节点构建器构建多个目标时可能出现的错误,特别是混合平台的情况。 docker/buildx#985
- 修复了Bake中的一些嵌套继承情况。 docker/buildx#914
- 修复在Bake文件上打印默认组的问题。 docker/buildx#884
- 修复在使用无根容器时的
UsernsMode。 docker/buildx#887
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.7.1
2021-08-25修复
- 修复了在
.dockerignore中匹配排除规则的问题。 docker/buildx#858 - 修复当前组的
bake --printJSON输出。 docker/buildx#857
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.7.0
2021-11-10新功能
- 来自BuildKit配置的TLS证书现在通过
docker-container和kubernetes驱动程序传输到构建容器。 docker/buildx#787 - 构建支持
--ulimit标志以实现功能对等。 docker/buildx#800 - 构建支持
--shm-size标志以实现功能对等。 docker/buildx#790 - 构建支持
--quiet以实现功能对等。 docker/buildx#740 - 构建支持
--cgroup-parent标志以实现功能对等。 docker/buildx#814 - Bake 支持内置变量
BAKE_LOCAL_PLATFORM。 docker/buildx#748 - Bake 支持在 Compose 文件中使用
x-bake扩展字段。 docker/buildx#721 kubernetes驱动程序现在支持冒号分隔的KUBECONFIG。 docker/buildx#761kubernetes驱动程序现在支持使用--config设置 Buildkit 配置文件。 docker/buildx#682kubernetes驱动程序现在支持使用 driver-opt 安装 QEMU 模拟器。 docker/buildx#682
增强功能
- 允许使用自定义注册表配置从客户端进行多节点推送。 docker/buildx#825
- 允许为
buildx imagetools命令使用自定义注册表配置。 docker/buildx#825 - 允许在创建后使用
buildx create --bootstrap启动构建器。 docker/buildx#692 - 允许
registry:insecure输出选项用于多节点推送。 docker/buildx#825 - BuildKit 配置和 TLS 文件现在保存在 Buildx 状态目录中,并在需要重新创建 BuildKit 实例时重复使用。 docker/buildx#824
- 确保不同项目使用单独的目标目录进行增量上下文传输,以获得更好的性能。 docker/buildx#817
- 默认情况下,构建容器现在被放置在单独的cgroup中。 docker/buildx#782
- Bake 现在使用
--print打印默认组。 docker/buildx#720 docker驱动程序现在通过 HTTP 拨号构建会话以获得更好的性能。 docker/buildx#804
修复
- 修复了在多节点推送时使用
--iidfile的问题。 docker/buildx#826 - 在 Bake 中使用
--push不会清除文件中的其他镜像导出选项。 docker/buildx#773 - 修复了当使用
https协议时buildx bake的Git URL检测问题。 docker/buildx#822 - 修复在多节点构建中推送具有多个名称的镜像。 docker/buildx#815
- 避免显示不使用
--builder标志的命令。 docker/buildx#818 - 不支持的构建标志现在会显示警告。 docker/buildx#810
- 修复一些OpenTelemetry跟踪中的报告错误详情。 docker/buildx#812
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.6.3
2021-08-30修复
- 修复Windows客户端的BuildKit状态卷位置。 docker/buildx#751
有关更多详细信息,请参阅 Buildx GitHub 仓库中的完整发布说明。
0.6.2
2021-08-21更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
修复
- 修复在某些SSH配置中出现的连接错误。 docker/buildx#741
0.6.1
2021-07-30增强功能
- 设置
ConfigFile以使用 Bake 解析 compose 文件。 docker/buildx#704
修复
- 重复进度环境变量。 docker/buildx#693
- 应该忽略 nil 客户端。 docker/buildx#686
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.6.0
2021-07-16新功能
- 支持OpenTelemetry跟踪并将Buildx客户端跟踪转发到BuildKit。 docker/buildx#635
- 实验性的 GitHub Actions 远程缓存后端,使用
--cache-to type=gha和--cache-from type=gha。 docker/buildx#535 - 新增了
--metadata-file标志,用于build和Bake命令,允许以JSON格式保存构建结果的元数据。 docker/buildx#605 - 这是第一个支持Windows ARM64的版本。 docker/buildx#654
- 这是第一个支持Linux Risc-V的版本。 docker/buildx#652
- Bake 现在支持从远程定义构建,使用本地文件或另一个远程源作为上下文。 docker/buildx#671
- Bake 现在允许变量相互引用,并在变量中使用用户函数,反之亦然。 docker/buildx#575, docker/buildx#539, docker/buildx#532
- Bake 允许在全局范围内定义属性。 docker/buildx#541
- Bake 允许跨多个文件的变量。 docker/buildx#538
- 新增了进度打印机的静默模式。 docker/buildx#558
kubernetes驱动程序现在支持定义资源/限制。 docker/buildx#618- Buildx 二进制文件现在可以通过 buildx-bin Docker 镜像访问。 docker/buildx#656
增强功能
docker-container驱动程序现在将 BuildKit 状态保存在卷中。启用更新时保持状态。 docker/buildx#672- Compose 解析器现在基于新的 compose-go 解析器 修复了对一些新语法的支持。 docker/buildx#669
- SSH 套接字现在在构建基于 SSH 的 git URL 时会自动转发。 docker/buildx#581
- Bake HCL 解析器已被重写。 docker/buildx#645
- 扩展HCL支持,增加更多功能。 docker/buildx#491 docker/buildx#503
- 允许从环境变量中获取密钥。 docker/buildx#488
- 使用不受支持的多平台和加载配置的构建现在会快速失败。 docker/buildx#582
- 存储Kubernetes配置文件以使buildx构建器可切换。 docker/buildx#497
- Kubernetes 现在在检查时将所有的 pods 列为节点。 docker/buildx#477
- 默认的无根镜像已设置为
moby/buildkit:buildx-stable-1-rootless。 docker/buildx#480
修复
imagetools create命令现在正确地合并了JSON描述符与旧的描述符。 docker/buildx#592- 修复使用
--network=none构建时不需要额外安全权限的问题。 docker/buildx#531
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.5.1
2020-12-15修复
- 修复在
kubernetes驱动之外设置--platform在buildx create上的回归问题。 docker/buildx#475
有关更多详细信息,请参阅 Buildx GitHub 仓库中的完整发布说明。
0.5.0
2020-12-15新功能
docker驱动程序现在支持--push标志。 docker/buildx#442- Bake 支持内联 Dockerfiles。 docker/buildx#398
- Bake 支持从远程URL和Git仓库构建。 docker/buildx#398
BUILDX_CONFIG环境变量允许用户拥有与Docker配置分开的buildx状态。 docker/buildx#385BUILDKIT_MULTI_PLATFORM构建参数允许强制构建多平台返回对象,即使只指定了一个--platform。 docker/buildx#467
增强功能
- 允许
--append与kubernetes驱动程序一起使用。 docker/buildx#370 - 构建错误显示源文件中的错误位置和系统堆栈跟踪
使用
--debug。 docker/buildx#389 - Bake 格式化带有源定义的 HCL 错误。 docker/buildx#391
- Bake 允许数组中的空字符串值,这些值将被丢弃。 docker/buildx#428
- 您现在可以使用
kubernetes驱动程序的Kubernetes集群配置。 docker/buildx#368 docker/buildx#460 - 尽可能创建一个临时令牌用于拉取镜像,而不是共享凭证。 docker/buildx#469
- 确保在拉取BuildKit容器镜像时传递凭据。 docker/buildx#441 docker/buildx#433
- 在
docker-container驱动程序中禁用用户命名空间重新映射。 docker/buildx#462 - 允许
--builder标志切换到默认实例。 docker/buildx#425 - 避免在空的
BUILDX_NO_DEFAULT_LOAD配置值上发出警告。 docker/buildx#390 - 将
quiet选项生成的错误替换为警告。 docker/buildx#403 - CI 已切换到 GitHub Actions。 docker/buildx#451, docker/buildx#463, docker/buildx#466, docker/buildx#468, docker/buildx#471
修复
- 处理小写的Dockerfile名称作为向后兼容的备用方案。 docker/buildx#444
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.4.2
2020-08-22新功能
- 支持
cacheonly导出器。 docker/buildx#337
增强功能
- 更新
go-cty以引入更多stdlib函数。 docker/buildx#277 - 改进加载时的错误检查。 docker/buildx#281
修复
- 修复使用HCL解析json配置的问题。 docker/buildx#280
- 确保
--builder从根选项中连接。 docker/buildx#321 - 移除多平台iidfile的警告。 docker/buildx#351
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.4.1
2020-05-01修复
- 修复标志解析的回归问题。 docker/buildx#268
- 修复在HCL目标中使用pull和no-cache键的问题。 docker/buildx#268
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.4.0
2020-04-30新功能
- 添加
kubernetes驱动。 docker/buildx#167 - 新的全局
--builder标志,用于覆盖单个命令的构建器实例。 docker/buildx#246 - 新增
prune和du命令用于管理本地构建器缓存。 docker/buildx#249 - 您现在可以为HCL目标设置新的
pull和no-cache选项。 docker/buildx#165
增强功能
- 将Bake升级到HCL2,支持变量和函数。 docker/buildx#192
- Bake 现在支持
--load和--push。 docker/buildx#164 - Bake 现在支持对多个目标进行通配符覆盖。 docker/buildx#164
- 容器驱动程序允许通过
driver-opt设置环境变量。 docker/buildx#170
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.3.1
2019-09-27增强功能
- 处理复制Unix套接字而不是报错。 docker/buildx#155 moby/buildkit#1144
修复
- 现在使用多个Compose文件运行Bake时,目标会正确合并。 docker/buildx#134
- 修复从标准输入构建Dockerfile时的错误(
build -f -)。 docker/buildx#153
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.3.0
2019-08-02新功能
- 自定义
buildkitd守护进程标志。 docker/buildx#102 - 在
create上的驱动程序特定选项。 docker/buildx#122
增强功能
- 环境变量在Compose文件中使用。 docker/buildx#117
- Bake 现在支持
--no-cache和--pull。 docker/buildx#118 - 自定义BuildKit配置文件。 docker/buildx#121
- 支持使用
build --allow的权限。 docker/buildx#104
修复
- 修复了
--build-arg foo无法从环境中读取foo的bug。 docker/buildx#116
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.2.2
2019-05-30增强功能
- 更改Compose文件处理以要求有效的服务规范。 docker/buildx#87
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.2.1
2019-05-25新功能
- 添加
BUILDKIT_PROGRESS环境变量。 docker/buildx#69 - 添加
local平台。 docker/buildx#70
增强功能
- 如果配置中定义了arm变体,则保留它。 docker/buildx#68
- 使dockerfile相对于上下文。 docker/buildx#83
修复
- 修复从compose文件中解析目标的问题。 docker/buildx#53
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.
0.2.0
2019-04-25新功能
- 首次发布
更多详情,请参阅完整的发布说明在 Buildx GitHub 仓库.