構建檢查
BuildKit 內建支援根據一組預定義規則來分析您的構建配置,以強制執行 Dockerfile 和構建最佳實踐。遵守這些規則有助於避免錯誤並確保 Dockerfile 的良好可讀性。
檢查作為構建呼叫執行,但它不產生構建輸出,而是執行一系列檢查以驗證您的構建是否違反任何規則。要執行檢查,請使用 `--check` 標誌
$ docker build --check .
要了解有關如何使用構建檢查的更多資訊,請參閱 檢查您的構建配置。
名稱 | 描述 |
---|---|
StageNameCasing | 階段名稱應為小寫 |
FromAsCasing | “as”關鍵字的大小寫應與“from”關鍵字的大小寫匹配 |
NoEmptyContinuation | 空行在未來版本中將成為錯誤 |
ConsistentInstructionCasing | Dockerfile 中的所有命令都應使用相同的大小寫(大寫或小寫) |
DuplicateStageName | 階段名稱應唯一 |
ReservedStageName | 保留字不應用於作階段名稱 |
JSONArgsRecommended | 建議 ENTRYPOINT/CMD 使用 JSON 引數,以防止出現與作業系統訊號相關的意外行為 |
MaintainerDeprecated | MAINTAINER 指令已棄用,請改用標籤來定義影像作者 |
UndefinedArgInFrom | FROM 命令必須使用宣告的 ARGs |
WorkdirRelativePath | 如果基礎映象更改,在構建中未宣告絕對工作目錄的相對工作目錄可能會產生意外結果 |
UndefinedVar | 變數應在使用前定義 |
MultipleInstructionsDisallowed | 同一階段不應使用多個相同型別的指令 |
LegacyKeyValueFormat | 不應使用帶空格分隔符的舊鍵/值格式 |
RedundantTargetPlatform | 在 FROM 中將平臺設定為預定義的 $TARGETPLATFORM 是多餘的,因為這是預設行為 |
SecretsUsedInArgOrEnv | ARG 或 ENV 命令中不應使用敏感資料 |
InvalidDefaultArgInFrom | 全域性 ARG 的預設值導致空或無效的基礎映象名稱 |
FromPlatformFlagConstDisallowed | FROM --platform 標誌不應使用常量值 |
CopyIgnoredFile(實驗性) | 嘗試複製被 .dockerignore 排除的檔案 |
InvalidDefinitionDescription(實驗性) | 構建階段或引數的註釋應遵循以下格式:`# |
ExposeProtoCasing | EXPOSE 指令中的協議應為小寫 |
ExposeInvalidFormat | EXPOSE 指令中不應使用 IP 地址和主機埠對映。這將在未來版本中成為錯誤 |