构建检查


BuildKit 内置支持基于一组预定义规则分析您的构建配置,以强制执行 Dockerfile 和构建最佳实践。遵循这些规则有助于避免错误并确保 Dockerfile 的良好可读性。

检查作为构建调用运行,但它不生成构建输出,而是执行一系列检查以验证您的构建没有违反任何规则。要运行检查,请使用 --check 标志:

$ docker build --check .

要了解更多关于如何使用构建检查的信息,请参阅 检查您的构建配置

名称描述
StageNameCasing阶段名称应使用小写
建议 'FROM' 指令中的关键字(如 'as')使用大写。'as' 关键字应与 'from' 关键字的大小写匹配
NoEmptyContinuation空的续行在未来的版本中将变成错误
一致指令大小写Dockerfile 中的所有命令应使用相同的大小写(全大写或全小写)
重复阶段名称阶段名称应唯一
预留阶段名称保留字不应用作阶段名称
建议 ENTRYPOINT/CMD 使用 JSON 参数,以防止与 OS 信号相关的意外行为
维护者已弃用MAINTAINER 指令已弃用,请改用标签来定义镜像作者
From指令中的未定义参数FROM 指令必须使用已声明的 ARG
工作目录相对路径如果在构建中未声明绝对工作目录,则相对工作目录可能会在基础镜像更改时产生意外结果
未定义变量变量应在其使用前定义
不允许使用多条指令同一类型的多个指令不应在同一个阶段中使用
旧版键值格式不应使用带空格分隔符的旧版键/值格式
冗余的目标平台将平台设置为 FROM 指令中预定义的 $TARGETPLATFORM 是多余的,因为这是默认行为
SecretsUsedInArgOrEnv不应在 ARG 或 ENV 命令中使用敏感数据
InvalidDefaultArgInFrom全局 ARG 的默认值导致基础镜像名称为空或无效
FromPlatformFlagConstDisallowedFROM --platform 标志不应使用常量值
CopyIgnoredFile (实验性)尝试复制被 .dockerignore 排除的文件
无效的定义描述 (实验性)构建阶段或参数的注释应遵循以下格式:`# `. 如果这不是旨在作为描述注释,请在指令和注释之间添加空行或注释。