Dockerfile 发行说明
此页面包含有关Dockerfile 参考中的新功能、改进、已知问题和错误修复的信息 。
有关使用方法,请参阅 Dockerfile 前端语法页面。
1.7.0
2024-03-06稳定的
# syntax=docker/dockerfile:1.7
- 变量扩展现在允许字符串替换和修剪。 莫比/buildkit#4427 , 莫比/buildkit#4287
- 具有本地源的命名上下文现在可以正确传输 Dockerfile 中使用的文件,而不是完整的源目录。 莫比/buildkit#4161
- Dockerfile 现在可以更好地验证阶段的顺序,如果阶段的顺序不正确,则返回带有堆栈跟踪的良好错误。 莫比/buildkit#4568 , 莫比/buildkit#4567
- 历史提交消息现在包含与
COPY
和 一起使用的标志ADD
。 莫比/buildkit#4597 - 来自 Git 和 HTTP 源的命令的进度消息
ADD
已得到改进。 莫比/buildkit#4408
实验室
# syntax=docker/dockerfile:1.7-labs
--parents
添加了新标志COPY
,用于在保留父目录结构的同时复制文件。 moby/buildkit#4598、 moby/buildkit#3001、 moby/buildkit#4720、 moby/buildkit#4728、 文档- 新
--exclude
标志可用于COPY
和ADD
命令以将过滤器应用于复制的文件。 moby/buildkit#4561, 文档
1.6.0
2023-06-13新的
- 在指令中添加
--start-interval
标志 。HEALTHCHECK
以下功能已从实验室通道升级为稳定版:
- 该
ADD
指令现在可以 直接从 Git URL 导入文件 - 该
ADD
指令现在支持--checksum
标志 来验证远程 URL 内容的内容
错误修复和增强功能
- 变量替换现在支持其他 POSIX 兼容变体,无需
:
. 莫比/buildkit#3611 - 导出的 Windows 映像现在包含基础映像中的 OSVersion 和 OSFeatures 值。 莫比/buildkit#3619
- 将 Heredocs 的权限更改为 0644。moby /buildkit#3992
1.5.2
2023-02-14错误修复和增强功能
- 修复了从缺少分支名称但包含子目录的 Git 引用构建的问题
- 386 平台镜像现已包含在版本中
1.5.1
2023-01-18错误修复和增强功能
- 修复多平台构建中出现警告条件时可能出现的恐慌
1.5.0(实验室)
2023-01-10实验性的
“labs”频道提供对稳定频道中尚未提供的 Dockerfile 功能的早期访问。
新的
ADD
命令现在支持--checksum
标志 来验证远程 URL 内容的内容
1.5.0
2023-01-10新的
ADD
命令现在可以 直接从 Git URL 导入文件
错误修复和增强功能
- 命名上下文现在支持
oci-layout://
包含本地 OCI 布局结构中的图像的协议 - Dockerfile 现在支持列出所有构建目标或打印特定构建目标接受参数的概要的二次请求
- 重定向到外部前端图像的Dockerfile指令现在允许使用注释或 JSON
#syntax
设置该指令。//
该文件还可能包含 shebang 标头 - 现在可以使用空的临时图像来初始化命名上下文
- 现在可以使用 SSH Git URL 初始化命名上下文
ONBUILD
修复导入 Schema1 图像时的处理
1.4.3
2022-08-23错误修复和增强功能
docker-image://
修复从命名上下文构建图像时未重置创建时间戳的问题- 修复加载命名上下文时传递命令
--platform
标志的问题FROM
docker-image://
1.4.2
2022-05-06错误修复和增强功能
- 修复从通过构建上下文传递的图像加载某些环境变量
1.4.1
2022-04-08错误修复和增强功能
- 当为不同平台构建输入时,修复来自输入的交叉编译情况的命名上下文解析
1.4.0
2022-03-09新的
COPY --link
并ADD --link
允许以更高的缓存效率复制文件并重新设置映像基准,而无需重建它们。--link
将文件复制到单独的层,然后使用新的 LLB MergeOp 实现将独立层链接在一起- Heredocs支持已从实验室渠道升级为稳定渠道。此功能允许编写多行内联脚本和文件
- 可以将其他 命名构建上下文 传递给构建,以在构建内添加或覆盖阶段或图像。上下文的源可以是本地源、图像、Git 或 HTTP URL
BUILDKIT_SANDBOX_HOSTNAME
build-arg 可用于设置RUN
步骤的默认主机名
错误修复和增强功能
- 使用交叉编译阶段时,步骤的目标平台现在可以在进度输出中看到
- 修复了 Heredocs 错误地从内容中删除引号的一些情况
1.3.1
2021-10-04错误修复和增强功能
- 修复解析没有值的“必需”安装键
1.3.0(实验室)
2021-07-16实验性的
“labs”频道提供对稳定频道中尚未提供的 Dockerfile 功能的早期访问。
新的
RUN
命令COPY
现在支持 Here-document 语法 ,允许编写多行内联脚本和文件
1.3.0
2021-07-16新的
RUN
命令允许--network
标记 用于请求特定类型的网络条件。--network=host
需要允许network.host
权利。此功能以前仅在实验室频道上可用
错误修复和增强功能
ADD
带有远程 URL 输入的命令现在可以正确处理该--chmod
标志RUN --mount
标志的值 现在支持变量扩展,from
字段 除外- 允许
BUILDKIT_MULTI_PLATFORM
构建参数 强制始终创建多平台映像,即使仅包含单个平台
1.2.1(实验室)
2020-12-12实验性的
“labs”频道提供对稳定频道中尚未提供的 Dockerfile 功能的早期访问。
错误修复和增强功能
RUN
命令允许--network
标记 用于请求特定类型的网络条件。--network=host
需要允许network.host
权利
1.2.1
2020-12-12错误修复和增强功能
- 恢复“确保 ENTRYPOINT 命令至少有一个参数”
- 优化
COPY
多平台交叉编译构建上的处理调用
1.2.0(实验室)
2020-12-03实验性的
“labs”频道提供对稳定频道中尚未提供的 Dockerfile 功能的早期访问。
错误修复和增强功能
- 实验频道已更名为实验室
1.2.0
2020-12-03新的
RUN --mount
用于创建秘密、ssh、绑定和缓存安装的语法已移至主线通道ARG
命令现在支持在同一行定义多个构建参数,类似于ENV
错误修复和增强功能
- 元数据加载错误现在被视为致命错误,以避免错误的构建结果
- 允许小写 Dockerfile 名称
--chown
标志ADD
现在允许参数扩展ENTRYPOINT
需要至少一个参数以避免创建损坏的图像
1.1.7
2020-04-18错误修复和增强功能
- 转发
FrontendInputs
到网关
1.1.2(实验)
2019-07-31实验性的
“labs”频道提供对稳定频道中尚未提供的 Dockerfile 功能的早期访问。
错误修复和增强功能
- 允许为进程设置安全模式
RUN --security=sandbox|insecure
- 允许设置 缓存挂载的uid/gid
- 避免请求拉动内部链接路径来构建上下文
- 确保缺失的缓存 ID 默认为目标路径
- 允许使用build arg设置缓存挂载的命名空间
BUILDKIT_CACHE_MOUNT_NS
1.1.2
2019-07-31错误修复和增强功能
- 使用正确的用户修复工作目录创建,并且不重置自定义所有权
- 修复处理空构建参数也用作
ENV
- 检测循环依赖
1.1.0
2019-04-27新的
ADD/COPY
如果内置文件操作支持可用,命令现在支持基于辅助图像的实现llb.FileOp
,并且不需要辅助图像--chown
命令标志COPY
现在支持变量扩展
错误修复和增强功能
- 要查找构建上下文中忽略的文件,Dockerfile 前端将首先查找文件
<path/to/Dockerfile>.dockerignore
,如果未找到.dockerignore
文件,将从构建上下文的根目录中查找文件。这允许具有多个 Dockerfile 的项目使用不同的.dockerignore
定义