ビルドチェック


BuildKit にはあらかじめ定められたルールに基づいて、ビルド設定を分析する機能がビルドインとして組み込まれています。 この機能により Dockerfile やビルド時のベストプラクティスを提供します。 こういったルールを定めることでエラーを回避し、Dockerfile の可読性を向上させます。

チェック機能はビルド実行の形で実現します。 ただしそのときにはビルド出力は行われません。 一連のチェックを行って、ビルド処理の中にルールを逸脱するようなものがないかどうかを検証します。 チェックを実行するには --check フラグを使います。

$ docker build --check .

ビルドチェック方法の詳細は ビルド設定のチェック を参照してください。

名前内容説明
StageNameCasingステージ名は英小文字を用いるべきです
FromAsCasing'as' キーワードと 'from' キーワードは、英大文字小文字のいずれかに統一していなければなりません。
NoEmptyContinuation継続行の中の空行は今後のリリースにおいてエラー扱いとなります。
ConsistentInstructionCasingDockerfile 内のコマンドはすべて英大文字か小文字に統一する必要があります。
DuplicateStageNameステージ名は一意でなければなりません。
ReservedStageName予約語はステージ名として用いることはできません。
JSONArgsRecommendedENTRYPOINT/CMD に対する JSON 引数は OS シグナルを起こすような意図しない動作は避けるべきです
MaintainerDeprecatedMAINTAINER 命令は廃止予定であり, イメージ作者の定義には label の使用が推奨されます
UndefinedArgInFromFROM コマンドで用いる ARG は宣言されていなければなりません
WorkdirRelativePathビルド内に絶対パス WORKDIR がないのに相対パス WORKDIR があると、ベースイメージ変更時に予期しない結果を生み出します
UndefinedVar変数は利用する前に定義しなければなりません
MultipleInstructionsDisallowed一つのステージ内では同一タイプの命令を複数用いることはできません
LegacyKeyValueFormatキーバリュー記述においてホワイトスペース区切りを用いるのは旧書式であって用いるべきではありません
RedundantTargetPlatformFROM において定義済み $TARGETPLATFORM をプラットフォーム指定することは、デフォルト動作であって冗長です
SecretsUsedInArgOrEnv機密情報は ARG や ENV コマンド内に用いるべきではありません
InvalidDefaultArgInFromグローバルな ARG のデフォルト値によっては、ベースイメージ名が空か不適切なものになります
FromPlatformFlagConstDisallowedFROM の --platform フラグでは固定値を用いるべきではありません
CopyIgnoredFile (試験的).dockerignore によって除外されているファイルをコピーしようとしてます
InvalidDefinitionDescription (試験的)ビルドステージや引数に対するコメントは `# <引数/ステージ 名> <内容説明>` という書式に従う必要があります。説明書きを意図するコメントではない場合は、命令とコメントの間に、空行または空のコメント行を入れてください
ExposeProtoCasingEXPOSE 命令のプロトコル記述は英小文字でなければなりません
ExposeInvalidFormatEXPOSE 命令には IP アドレスやホストのポートマッピングを記述してはなりません。これは今後のリリースにおいてエラー扱いとなります