Dockerfile 发行说明
目录
此页面包含有关新功能、改进、已知 问题和 Bug 修复在 Dockerfile 参考中。
有关用法,请参阅 Dockerfile 前端语法页面。
1.12.0
2024-11-27GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.12.0
- 使用多个说明修复镜像配置的 History 行中的错误描述。moby/buildkit#5508
ARG
1.11.1
2024-11-08GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.11.1
- 修复了在同一 Dockerfile 中继承的阶段中使用指令时的回归问题。白鲸/buildkit#5490
ONBUILD
1.11.0
2024-10-30GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.11.0
ONBUILD
指令现在支持使用 ,例如 或 来引用其他阶段或镜像的命令。白鲸/buildkit#5357from
COPY --from
RUN mount=from=...
- 改进了
SecretsUsedInArgOrEnv
构建检查以减少误报。白鲸/buildkit#5208 - 新的
InvalidDefinitionDescription
生成检查建议为生成参数和阶段描述设置注释格式。这是一项实验性检查。moby/buildkit#5208、moby/buildkit#5414 - 对指令的进度和错误处理进行了多项修复。白鲸/buildkit#5397
ONBUILD
- 改进了缺少标志错误的错误报告。白鲸/buildkit#5369
- 增强了作为环境变量挂载的密钥值的进度输出。白鲸/buildkit#5336
- 添加了内置 build 参数,用于公开当前构建的(最终)目标阶段的名称。白鲸/buildkit#5431
TARGETSTAGE
1.11.0-实验室
COPY --chmod
现在支持非八进制值。moby/buildkit#5380
1.10.0
2024-09-10GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.10.0
- 现在,可以使用该选项将 Build Secret 挂载为环境变量。moby/buildkit#5215
env=VARIABLE
# check
指令现在允许使用新的 experimental 属性来启用实验性验证规则,例如 .白鲸/buildkit#5213CopyIgnoredFile
- 改进对变量替换的不支持修饰符的验证。moby/buildkit#5146
ADD
和 instructions 现在支持对选项值的构建参数进行变量插值。moby/buildkit#5151COPY
--chmod
- 改进对 和 instructions 的选项的验证。moby/buildkit#5148
--chmod
COPY
ADD
- 修复挂载时缺少 size 和 destination 属性的补全问题。白鲸/buildkit#5245
- OCI 注释现在设置为 Dockerfile 前端发布镜像。白鲸/buildkit#5197
1.9.0
2024-07-11GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.9.0
- 添加新的验证规则:
SecretsUsedInArgOrEnv
InvalidDefaultArgInFrom
RedundantTargetPlatform
CopyIgnoredFile
(实验性)FromPlatformFlagConstDisallowed
- 使用大型 Dockerfile 的许多性能改进。moby/buildkit#5067、moby/buildkit#5029
- 修复在构建未定义阶段的 Dockerfile 时可能出现的 panic。白鲸/buildkit#5150
- 修复不正确的 JSON 解析,这可能会导致传递一些不正确的 JSON 值而不会产生错误。白鲸/buildkit#5107
- 修复目标路径为 时可能失败的回归。白鲸/buildkit#5080
COPY --link
.
- 修复了与 Git URL 一起使用时的验证。白鲸/buildkit#5085
ADD --checksum
1.8.1
2024-06-18GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.8.1
错误修复和增强功能
- 修复了变量扩展时空字符串的处理。白鲸/buildkit#5052
- 改进构建警告的格式设置。moby/buildkit#5037、moby/buildkit#5045、moby/buildkit#5046
- 修复多阶段构建警告可能出现的无效输出。moby/buildkit#5048
UndeclaredVariable
1.8.0
2024-06-11GitHub 上提供了此版本的完整发行说明。
# syntax=docker/dockerfile:1.8.0
- 添加了许多新的验证规则,以验证您的 Dockerfile 是否正在使用最佳实践。这些规则在构建过程中进行验证,新的 frontend 方法可用于仅触发验证,而不完成整个构建。
check
- new directive 和 build 参数允许您控制行为或构建检查。白鲸/buildkit#4962
#check
BUILDKIT_DOCKERFILE_CHECK
- 现在,将验证使用与您的预期平台不匹配的单平台基础镜像。白鲸/buildkit#4924
- 现在可以正确处理在全局范围内扩展定义的错误。moby/buildkit#4856
ARG
- 仅当用户未覆盖默认值 now 时,才会扩展默认值 now。以前,扩展已完成,后来忽略了 value,这可能会导致意外的扩展错误。moby/buildkit#4856
ARG
- 改进了解析具有许多阶段的大型 Dockerfile 的性能。白鲸/buildkit#4970
- 修复一些 Windows 路径处理一致性错误。白鲸/buildkit#4825
1.7.0
2024-03-06稳定
# syntax=docker/dockerfile:1.7
- 变量扩展现在允许字符串替换和修剪。moby/buildkit#4427、moby/buildkit#4287
- 具有本地源的命名上下文现在可以正确地仅传输 Dockerfile 中使用的文件,而不是完整的源目录。白鲸/buildkit#4161
- Dockerfile 现在可以更好地验证阶段的顺序,如果阶段的顺序不正确,则会返回带有堆栈跟踪的 nice 错误。moby/buildkit#4568、moby/buildkit#4567
- 历史记录提交消息现在包含与 和 一起使用的标志。moby/buildkit#4597
COPY
ADD
- 来自 Git 和 HTTP 源的命令的进度消息已得到改进。白鲸/buildkit#4408
ADD
实验室
# syntax=docker/dockerfile:1.7-labs
- 添加了新标志,用于在保留父目录结构的同时复制文件。moby/buildkit#4598、moby/buildkit#3001、moby/buildkit#4720、moby/buildkit#4728、文档
--parents
COPY
- 可以在 和 命令中使用新标志,以将过滤器应用于复制的文件。moby/buildkit#4561,文档
--exclude
COPY
ADD
1.6.0
2023-06-13新增功能
- 将 flag 添加到
HEALTHCHECK
指令中。--start-interval
以下功能已从 labs 频道升级到稳定版:
- 该指令现在可以直接从 Git URL 导入文件
ADD
- 该指令现在支持
--checksum
标志来验证远程 URL 内容的内容ADD
错误修复和增强功能
- 变量替换现在支持其他 POSIX 兼容变体,而无需 .白鲸/buildkit#3611
:
- 导出的 Windows 镜像现在包含来自基础镜像的 OSVersion 和 OSFeatures 值。白鲸/buildkit#3619
- 将 Heredocs 的权限更改为 0644。白鲸/buildkit#3992
1.5.2
2023-02-14错误修复和增强功能
- 修复从缺少分支名称但包含 子目录
- 386 平台镜像现在包含在此版本中
1.5.1
2023-01-18错误修复和增强功能
- 修复了在多平台构建中出现警告条件时可能出现的 panic
1.5.0 (实验室)
2023-01-10实验的
“labs” 通道提供对 Dockerfile 功能的早期访问,这些功能不是 但在 stable 频道中可用。
新增功能
ADD
命令现在支持--checksum
标志来验证远程 URL 内容的内容
1.5.0
2023-01-10新增功能
ADD
命令现在可以直接从 Git URL 导入文件
错误修复和增强功能
- 命名上下文现在支持包含来自
本地 OCI 布局结构
oci-layout://
- Dockerfile 现在支持列出所有构建目标或 打印特定构建目标的接受参数的大纲
- 重定向到外部前端镜像的 Dockerfile 指令
现在还允许使用 comments 或 JSON 设置指令。文件
还可能包含 Shebang 标头
#syntax
//
- 现在可以使用空的暂存镜像初始化命名上下文
- 命名上下文现在可以使用 SSH Git URL 进行初始化
- 修复了导入 Schema1 镜像时的处理
ONBUILD
1.4.3
2022-08-23错误修复和增强功能
- 修复从命名上下文构建镜像时未重置创建时间戳的问题
docker-image://
- 修复了在加载命名上下文时传递命令标志的问题
--platform
FROM
docker-image://
1.4.2
2022-05-06错误修复和增强功能
- 修复了从使用 built 传递的镜像中加载某些环境变量的问题 上下文
1.4.1
2022-04-08错误修复和增强功能
- 修复了 input 时来自输入的交叉编译情况的命名上下文解析 专为不同的平台而构建
1.4.0
2022-03-09新增功能
COPY --link
和ADD --link
允许复制缓存效率更高的文件,并在没有 要求他们重建。 将文件复制到单独的图层,然后 然后使用新的 LLB MergeOp 实现将独立层链接在一起--link
- Heredocs 支持有 已从 Labs 频道提升为稳定版。此功能允许写入 多行内联脚本和文件
- 可以将其他命名的构建上下文传递给 build,以添加或覆盖 建。上下文的源可以是本地源、镜像、Git 或 HTTP URL
BUILDKIT_SANDBOX_HOSTNAME
build-arg 可用于设置步骤的默认主机名RUN
错误修复和增强功能
- 使用交叉编译阶段时,步骤的目标平台现在是 在 Progress 输出上看到
- 修复 Heredocs 错误地从内容中删除引号的一些情况
1.3.1
2021-10-04错误修复和增强功能
- 修复了解析没有值的 “required” 挂载键的问题
1.3.0 (实验室)
2021-07-16实验的
“labs” 通道提供对 Dockerfile 功能的早期访问,这些功能不是 但在 stable 频道中可用。
新增功能
RUN
命令现在支持 Here 文档语法,允许编写多行内联脚本和文件COPY
1.3.0
2021-07-16新增功能
RUN
命令允许--network
标志来请求特定类型的网络条件。 需要 Allow entitlement。此功能以前是 仅在 Labs 频道上可用--network=host
network.host
错误修复和增强功能
ADD
命令现在可以正确处理标志--chmod
RUN --mount
标志的值现在支持变量扩展,但字段from
- 允许
BUILDKIT_MULTI_PLATFORM
build arg 强制始终创建多平台镜像,即使只包含单个 平台
1.2.1 (实验室)
2020-12-12实验的
“labs” 通道提供对 Dockerfile 功能的早期访问,这些功能不是 但在 stable 频道中可用。
错误修复和增强功能
RUN
命令允许--network
标志来请求特定类型的网络条件。 需要 允许 授权--network=host
network.host
1.2.1
2020-12-12错误修复和增强功能
- 还原 “确保 ENTRYPOINT 命令至少有一个参数”
- 优化多平台交叉编译版本上的处理调用
COPY
1.2.0 (实验室)
2020-12-03实验的
“labs” 通道提供对 Dockerfile 功能的早期访问,这些功能不是 但在 stable 频道中可用。
错误修复和增强功能
- 实验频道已重命名为 labs
1.2.0
2020-12-03新增功能
的 RUN --mount
语法 创建 secret、ssh、bind 和 cache 挂载已移至 mainline 渠道ARG
命令现在支持定义 同一行上的多个 build args,类似于ENV
错误修复和增强功能
- 元数据加载错误现在作为致命错误处理,以避免不正确的构建结果
- 允许小写 Dockerfile 名称
--chown
标志 in 现在允许参数扩展ADD
ENTRYPOINT
需要至少一个参数以避免创建损坏的镜像
1.1.7
2020-04-18错误修复和增强功能
- 转发到网关
FrontendInputs
1.1.2 (实验性)
2019-07-31实验的
“labs” 通道提供对 Dockerfile 功能的早期访问,这些功能不是 但在 stable 频道中可用。
错误修复和增强功能
- 允许为具有
RUN --security=sandbox|insecure
- 允许为缓存挂载设置 uid/gid
- 避免请求拉取内部链接的路径以构建上下文
- 确保缺少的缓存 ID 默认为目标路径
- 允许使用
BUILDKIT_CACHE_MOUNT_NS
build arg 为缓存挂载设置命名空间
1.1.2
2019-07-31错误修复和增强功能
- 使用正确的用户修复 workdir 创建问题,并且不重置自定义所有权
- 修复了空 build args 的处理问题,这些参数也用作
ENV
- 检测循环依赖关系
1.1.0
2019-04-27新增功能
ADD/COPY
命令现在支持基于 和 Do 的实现 如果内置文件操作支持可用,则不需要帮助程序镜像llb.FileOp
--chown
命令的标志现在支持变量扩展COPY
错误修复和增强功能
- 要查找从构建上下文中忽略的文件,Dockerfile 前端将
首先查找文件,如果不是
找到的文件将从构建的根目录开始查找
上下文。这允许具有多个 Dockerfile 的项目使用不同的定义
<path/to/Dockerfile>.dockerignore
.dockerignore
.dockerignore