构建检查


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

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

$ docker build --check .

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

名称描述
StageNameCasing阶段名称应为小写
FromAsCasing“as”关键字应与“from”关键字的大小写匹配
NoEmptyContinuation空续行将在未来版本中成为错误
ConsistentInstructionCasingDockerfile 中的所有命令应使用相同的大小写(全部大写或全部小写)
DuplicateStageName阶段名称应唯一
ReservedStageName保留字不能用作阶段名称
JSONArgsRecommended建议使用 JSON 参数用于 ENTRYPOINT/CMD,以防止与操作系统信号相关的意外行为
MaintainerDeprecatedMAINTAINER 指令已弃用,请改用标签来定义镜像作者
UndefinedArgInFromFROM 命令必须使用已声明的 ARG
WorkdirRelativePath如果基础镜像发生更改,则未声明绝对工作目录的相对工作目录可能会产生意外结果
UndefinedVar应在使用变量之前定义变量
MultipleInstructionsDisallowed同一阶段内不应使用多种相同类型的指令
LegacyKeyValueFormat不应使用带有空格分隔符的旧版键/值格式
RedundantTargetPlatform在 FROM 中将平台设置为预定义的 $TARGETPLATFORM 是冗余的,因为这是默认行为
SecretsUsedInArgOrEnvARG 或 ENV 命令中不应使用敏感数据
InvalidDefaultArgInFrom全局 ARG 的默认值会导致空或无效的基础镜像名称
FromPlatformFlagConstDisallowedFROM --platform 标志不应使用常量值
CopyIgnoredFile(实验性)尝试复制 .dockerignore 排除的文件
InvalidDefinitionDescription(实验性)构建阶段或参数的注释应遵循以下格式:`#`。如果这不打算作为描述注释,请在指令和注释之间添加空行或注释。