构建检查
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 的默认值导致基础镜像名称为空或无效 |
| FromPlatformFlagConstDisallowed | FROM --platform 标志不应使用常量值 |
| CopyIgnoredFile (实验性) | 尝试复制被 .dockerignore 排除的文件 |
| 无效的定义描述 (实验性) | 构建阶段或参数的注释应遵循以下格式:`# |