gotohayato.com

moon indicating dark mode
sun indicating light mode

docker-compose up で一部のサービスを除外する方法

2020/02/25Docker

Docker 小ネタです。 docker-compose up コマンドで一部のサービスを除外する方法についてです。

動作確認時点の Docker のバージョンは次のとおりです。

docker:

$ docker --version
Docker version 19.03.5, build 633a0ea

docker-compose:

$ docker-compose version
docker-compose version 1.25.4, build 8d51620a

docker-compose.yml に記述したサービス一覧の中にときどきしか使わないものがある場合は、そのサービスを除外して docker-compose up をしたくなることがあります。 私はむしろほぼいつでもそうしたいぐらいです。

docker-compose up [service a] [service b] ... と、立ち上げたいものだけを記述すれば一部のサービスだけ立ち上げることも可能なのですが、私の場合は、立ち上げたいサービスに比べて除外したいサービスの数の方が少ないことが多いので、このやり方では不便です。

ということで docker-compose up で一部のサービスを除外する方法を調べました。

結論としては、直接指定できる方法は提供されていません。 代わりに、あまり直感的ではない次善の策として --scale オプションが利用可能です。

例えば cli というサービスを定義していて、それを除外して他のサービスをすべて立ち上げたいときは次のようにすると OK です。

docker-compose up --scale cli=0

ただ、除外したいサービスが複数個ある場合はこれでも不便です。 この場合には例えば次のような感じで指定するアイデアもあるようです。

docker-compose up $(< services.txt)

ただこれもあまりやりやすいとは言えません。

docker-compose.yml の中で enabled: false あるいは up: false といった感じで指定できるとうれしいのですが、この記事を書いている時点ではそのようなオプションは無いようです。

参考:

関連記事


後藤隼人
個人事業でウェブ開発やマーケティングをしています。
GitHub
© 2020 gotohayato.com
サイトについてタグ一覧記事アーカイブ