はじめに
いまさらですが、Docker Compose の設定ファイルに上書き機能があることを知ったのでメモ。
公式のドキュメントはこちら。
Compose 設定をファイルとプロジェクト間で共有 — Docker-docs-ja 24.0 ドキュメント
基本仕様
docker-compose
コマンドはデフォルトでは docker-compose.yml
を設定として読み込みますが、docker-compose.override.yml
というファイルがあると、さらにこのファイルを読み込んで docker-compose.yml
の設定を上書きします。
-f オプションで設定ファイルを指定した場合は、docker-compose.yml
, docker-compose.override.yml
ともに読み込みません。
さらに、-f オプションで複数のファイルを指定した場合は、指定した順に読み込んで設定を上書きしていきます。
例えば下記だと、AAA.yml
の設定を BBB.yml
で上書きした設定で動きます。
% docker-compose -f AAA.yml -f BBB.yml
上書き例
docker-compose.yml
にベースの設定を行い、docker-compose.override.yml
に追加で上書きしたい設定をした例です。
例えば下記は、通常は 8888番ポートで Listen する設定になっているサービスを 80 番ポートで Listen するように上書きする設定です。
version: '3.4'
services:
xxx-httpd:
ports:
- 80:8888
コメント