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