docker composeの--profileオプションで必要な時だけserviceを立ち上げる
docker composeって必要なserviceまとめて扱うから重いと思ってた
例えば Procfile であれば起動しないプロセスを簡単にコメントアウトできるので、一時的な ON/OFF も容易だ。
web: bundle exec rails s
worker: bundle exec good_job start # <- コメントアウトすれば済む
しかし docker compose は長大な YAML になっていて簡単に切り替えできないんだよなぁとずっと思っていたんだけど、いつの間にか profile というものができていた。
2021-01-20 の version 1.28.0 で --profile
を support して以降、この状況は変わっていたようだ。
Docker Compose release notes | Docker Docs
ということは、2023-06 に docker compose v1 が EOL になっている今、利用可能な compose コマンドでは必ず使えるということになる。
Docker Compose: What’s New, What’s Changing, What’s Next | Docker
profileの使い方
Using profiles with Compose | Docker Docs
- compose YAML において、service が
profiles
property を持つ profiles
を持っていない service は常に対象となる- docker compose up 時に
--profile
を与えた場合、その profile を持つ service が有効となる
ということは、
- 普段使わなくて済む特別な service や重いので常用したくないものにはそれ用の profile を付け
- 必要な時だけ
--profile
で有効にする
という使い方をすればよい。
もう3年も前の話だったのね…。