构建检查


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

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

$ docker build --check .

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

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