docker-compose --scale
appコンテナを4つ起動する例
$ docker-compose up -d --scale app=4
app=4の所は任意の数が指定できる
良さ
ローカルでもアプリケーションサーバーの数を増減できる
productionっぽい環境を再現しやすい
同一の外部portにbindできるコンテナは1つだけ
--scaleを使ってwebサーバーを複数起動する場合は
nginxのupstreamにappという名前を1つ指定するだけでok code:nginx.conf
http {
upstream apps {
server app:80;
}
これでscaleオプションで複数起動したコンテナにrequestがランダムに振り分けられる
なぜnginxのserverで1つしか指定してないのに、4つに振り分けされるのか?
https://gyazo.com/8b1f8ffa21c3c6e30bf4add62ee2f342
appという名前で解決されるコンテナのIPアドレスがランダムになってる