ビルドチェック
BuildKit にはあらかじめ定められたルールに基づいて、ビルド設定を分析する機能がビルドインとして組み込まれています。 この機能により Dockerfile やビルド時のベストプラクティスを提供します。 こういったルールを定めることでエラーを回避し、Dockerfile の可読性を向上させます。
チェック機能はビルド実行の形で実現します。
ただしそのときにはビルド出力は行われません。
一連のチェックを行って、ビルド処理の中にルールを逸脱するようなものがないかどうかを検証します。
チェックを実行するには --check
フラグを使います。
$ docker build --check .
ビルドチェック方法の詳細は ビルド設定のチェック を参照してください。
名前 | 内容説明 |
---|---|
StageNameCasing | ステージ名は英小文字を用いるべきです |
FromAsCasing | 'as' キーワードと 'from' キーワードは、英大文字小文字のいずれかに統一していなければなりません。 |
NoEmptyContinuation | 継続行の中の空行は今後のリリースにおいてエラー扱いとなります。 |
ConsistentInstructionCasing | Dockerfile 内のコマンドはすべて英大文字か小文字に統一する必要があります。 |
DuplicateStageName | ステージ名は一意でなければなりません。 |
ReservedStageName | 予約語はステージ名として用いることはできません。 |
JSONArgsRecommended | ENTRYPOINT/CMD に対する JSON 引数は OS シグナルを起こすような意図しない動作は避けるべきです |
MaintainerDeprecated | MAINTAINER 命令は廃止予定であり, イメージ作者の定義には label の使用が推奨されます |
UndefinedArgInFrom | FROM コマンドで用いる ARG は宣言されていなければなりません |
WorkdirRelativePath | ビルド内に絶対パス WORKDIR がないのに相対パス WORKDIR があると、ベースイメージ変更時に予期しない結果を生み出します |
UndefinedVar | 変数は利用する前に定義しなければなりません |
MultipleInstructionsDisallowed | 一つのステージ内では同一タイプの命令を複数用いることはできません |
LegacyKeyValueFormat | キーバリュー記述においてホワイトスペース区切りを用いるのは旧書式であって用いるべきではありません |
RedundantTargetPlatform | FROM において定義済み $TARGETPLATFORM をプラットフォーム指定することは、デフォルト動作であって冗長です |
SecretsUsedInArgOrEnv | 機密情報は ARG や ENV コマンド内に用いるべきではありません |
InvalidDefaultArgInFrom | グローバルな ARG のデフォルト値によっては、ベースイメージ名が空か不適切なものになります |
FromPlatformFlagConstDisallowed | FROM の --platform フラグでは固定値を用いるべきではありません |
CopyIgnoredFile (試験的) | .dockerignore によって除外されているファイルをコピーしようとしてます |
InvalidDefinitionDescription (試験的) | ビルドステージや引数に対するコメントは `# <引数/ステージ 名> <内容説明>` という書式に従う必要があります。説明書きを意図するコメントではない場合は、命令とコメントの間に、空行または空のコメント行を入れてください |
ExposeProtoCasing | EXPOSE 命令のプロトコル記述は英小文字でなければなりません |
ExposeInvalidFormat | EXPOSE 命令には IP アドレスやホストのポートマッピングを記述してはなりません。これは今後のリリースにおいてエラー扱いとなります |