建置檢查
BuildKit 內建支援根據一組預先定義的規則來分析您的建置設定,以實施 Dockerfile 和建置最佳實務。 遵循這些規則有助於避免錯誤,並確保 Dockerfile 的良好可讀性。
檢查以建置調用方式執行,但它不是產生建置輸出,而是執行一系列檢查以驗證您的建置沒有違反任何規則。 要執行檢查,請使用 --check
旗標
$ docker build --check .
要瞭解更多關於如何使用建置檢查的資訊,請參閱 檢查您的建置設定。
名稱 | 說明 |
---|---|
階段名稱大小寫 | 階段名稱應為小寫 |
`FROM` 指令大小寫 | `as` 關鍵字應與 `from` 關鍵字的大小寫相符 |
不允許空白接續行 | 空白接續行在未來的版本中將會變成錯誤 |
指令大小寫一致性 | Dockerfile 中的所有指令都應使用相同的大小寫(大寫或小寫) |
階段名稱重複 | 階段名稱應為唯一 |
保留的階段名稱 | 保留字不應被用作階段名稱 |
建議使用 JSON 參數 | 建議 ENTRYPOINT/CMD 使用 JSON 參數,以防止與作業系統訊號相關的意外行為 |
`MAINTAINER` 已棄用 | `MAINTAINER` 指令已棄用,請改用標籤來定義映像作者 |
FROM 中未定義的參數 | FROM 指令必須使用已宣告的參數 |
相對路徑的工作目錄 | 如果基礎映像發生更改,則在建置中未宣告絕對工作目錄的相對工作目錄可能會產生意外結果 |
未定義的變數 | 變數應在使用前定義。 |
不允許多個指令 | 同一階段不應使用多個相同類型的指令。 |
舊版鍵值格式 | 不應使用以空格分隔的舊版鍵/值格式。 |
多餘的目標平台 | 在 FROM 指令中設定 platform 為預定義的 $TARGETPLATFORM 是多餘的,因為這是預設行為。 |
在參數或環境變數中使用密鑰 | 不應在 ARG 或 ENV 指令中使用敏感資料。 |
FROM 中的無效預設參數 | 全域 ARG 的預設值會導致空的或無效的基礎映像名稱。 |
不允許使用 `FROM` 平台旗標常數 | FROM --platform 旗標不應使用常數值。 |
CopyIgnoredFile(實驗性) | 嘗試複製被 .dockerignore 排除的檔案。 |
InvalidDefinitionDescription(實驗性) | 建置階段或參數的註解應遵循以下格式:`# |