複数のdocker-compose.ymlをマージする
Docker Composeでは複数のdocker-compose.ymlをマージする機能がある 方法は2つある
COMPOSE_FILE=docker-compose.yml:docker-compose.override.yml docker-compose up
docker-compose up -f docker-compose.yml -f docker-compose.override.yml
使いどころ
基底となるファイルを環境ごとに拡張して使いまわしたいとき
docker-compose.common.ymlにローカル用の設定docker-compose.local.ymlを足すなど
マイクロサービスの開発時、各サービスの持つdocker-compose.ymlをマージしてまとめて起動する 一番最初に指定したファイルに対して後続のファイルの設定をマージしていく
キーが無い場合:追加
キーがある場合:後で指定したファイルの内容で上書き
マージされる内容はdocker-compose configで確認できる
build contextなどで相対パスを記述している場合、一番最初に指定したファイルをカレントディレクトリとして評価する 異なるディレクトリにあるファイルをマージする場合は注意
ワークアラウンドとしては、docker-compose configで評価した結果を一つずつマージする docker-compose -f foo/docker-compose.yml configを対象の数だけ繰り替えす
参考