ビルドせずに最終設定を表示する
この最終ステップでは、実際にビルドを実行せずに、docker buildx bake
が特定のターゲットに使用する最終設定(--set
フラグで適用された上書きを含む)を確認する方法を説明します。これは bake ファイルのデバッグや、ビルド前に有効な設定を理解するのに役立ちます。
docker buildx bake
の --print
フラグを使用すると、解決された設定を JSON 形式で出力できます。
~/project
ディレクトリにいることを確認してください。
cd ~/project
my-app-dev
ターゲットの設定を表示してみましょう。
docker buildx bake my-app-dev --print
このコマンドは、docker-bake.hcl
ファイルから派生した my-app-dev
ターゲットの設定を JSON 形式で出力します。
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:dev"]
}
}
}
次に、--set
フラグが出力される設定にどのように影響するかを見てみましょう。タグを my-app:testing
に上書きしながら、my-app-dev
の設定を表示します。
docker buildx bake my-app-dev --set my-app-dev.tags=my-app:testing --print
出力を確認してください。JSON 出力の tags
属性に、上書きされた値が反映されているはずです。
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:testing"]
}
}
}
同様に、my-app-prod
ターゲットの設定を表示し、そのビルド引数を上書きできます。
docker buildx bake my-app-prod --set my-app-prod.args.BUILD_ENV=staging --print
my-app-prod
ターゲットの JSON 出力には、上書きされた BUILD_ENV
値を持つ args
が表示されます。
{
"target": {
"my-app-prod": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:prod"],
"args": {
"BUILD_ENV": "staging"
}
}
}
}
--print
フラグは、時間のかかる可能性のあるビルドを開始する前に、bake ファイルの設定を検証し、上書きがどのように適用されるかを理解するための貴重なツールです。