なんかDocker buildxにbakeっていうのがあってDockerイメージを並列ビルドするのに使えるものっぽい。設定ファイルはHCL・JSON・YAMLで書けるみたいだけど今回はHCLを使う

ディレクトリ構成

.
├── docker-bake.hcl
├── nginx
│   ├── Dockerfile
│   ├── index.php
│   └── nginx.conf
├── php-fpm
│   ├── Dockerfile
│   └── php-fpm.conf
└── php-fpm.conf

前回で使ったnginx+php-fpmな環境のビルドをbakeを使ってビルドする

docker-bake.hcl

group "default" {
    targets = [ "nginx", "php-fpm" ]
}

target "nginx" {
    context = "./nginx"
    dockerfile = "Dockerfile"
    tags = ["nginx"]
}

target "php-fpm" {
    context = "./php-fpm"
    dockerfile = "Dockerfile"
    tags = ["php-fpm"]
}

bakeファイルには

  • compose.yml
  • docker-compose.yml
  • docker-compose.yaml
  • docker-bake.json
  • docker-bake.hcl
  • docker-bake.override.json
  • docker-bake.override.hcl

などがある模様。詳しくはhttps://docs.docker.com/build/bake/reference/

実行

docker buildx bake

実行すると

REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
php-fpm      latest    9cfd8e53455a   4 days ago   493MB
nginx        latest    f8535c02fb1b   4 days ago   192MB

というように複数のDockerイメージを並列でビルドしてくれるっぽい

余談

でもいまどきってDocker Compose使うのが結構主流っぽそうなのでどうなんだろなっていう印象w