构建检查
BuildKit 内置支持基于一组预定义规则分析您的构建配置,以强制执行 Dockerfile 和构建最佳实践。遵守这些规则有助于避免错误并确保 Dockerfile 的良好可读性。
检查作为构建调用运行,但它不产生构建输出,而是执行一系列检查以验证您的构建是否违反了任何规则。要运行检查,请使用--check
标志。
$ docker build --check .
要了解有关如何使用构建检查的更多信息,请参阅 检查您的构建配置。
名称 | 描述 |
---|---|
StageNameCasing | 阶段名称应为小写 |
FromAsCasing | “as”关键字应与“from”关键字的大小写匹配 |
NoEmptyContinuation | 空续行将在未来版本中成为错误 |
ConsistentInstructionCasing | Dockerfile 中的所有命令应使用相同的大小写(全部大写或全部小写) |
DuplicateStageName | 阶段名称应唯一 |
ReservedStageName | 保留字不能用作阶段名称 |
JSONArgsRecommended | 建议使用 JSON 参数用于 ENTRYPOINT/CMD,以防止与操作系统信号相关的意外行为 |
MaintainerDeprecated | MAINTAINER 指令已弃用,请改用标签来定义镜像作者 |
UndefinedArgInFrom | FROM 命令必须使用已声明的 ARG |
WorkdirRelativePath | 如果基础镜像发生更改,则未声明绝对工作目录的相对工作目录可能会产生意外结果 |
UndefinedVar | 应在使用变量之前定义变量 |
MultipleInstructionsDisallowed | 同一阶段内不应使用多种相同类型的指令 |
LegacyKeyValueFormat | 不应使用带有空格分隔符的旧版键/值格式 |
RedundantTargetPlatform | 在 FROM 中将平台设置为预定义的 $TARGETPLATFORM 是冗余的,因为这是默认行为 |
SecretsUsedInArgOrEnv | ARG 或 ENV 命令中不应使用敏感数据 |
InvalidDefaultArgInFrom | 全局 ARG 的默认值会导致空或无效的基础镜像名称 |
FromPlatformFlagConstDisallowed | FROM --platform 标志不应使用常量值 |
CopyIgnoredFile(实验性) | 尝试复制 .dockerignore 排除的文件 |
InvalidDefinitionDescription(实验性) | 构建阶段或参数的注释应遵循以下格式:`#` |