構建檢查


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 地址和主機埠對映。這將在未來版本中成為錯誤