Jwilderのnginxリバースプロキシによって取得されないhttpサーバーでコンテナーを作成するdocker-composeがありますが、手動でインスタンス化すると機能します。
version: '2'
services:
mongo:
image: tutum/mongodb
expose:
- "27017"
environment:
- AUTH=no
backend:
build:
context: "./instance"
hostname: instance
ports:
- "1080:8080"
expose:
- "8080"
links:
- mongo
frontend:
build:
context: "./instancegui"
ports:
- "80"
environment:
- VIRTUAL_Host=some.Host.com
- LETSENCRYPT_Host=some.Host.com
- [email protected]
リバースプロキシによって生成された設定ファイルには、upstream {... DOWN}と記載されています。
しかし、そのようにインスタンス化すると、コンテナは正常に動作します
docker run --name group_frontend_1 -p 80 -e "VIRTUAL_Host=some.Host.com" -e "LETSENCRYPT_Host=some.Host.com" -e "[email protected]" -d db70e6003db9
解決策が見つかりました
問題は、含まれているものがプロキシコンテナによって監視されているネットワークにないことです。最も直接的な方法は、含まれているものをブリッジモードに設定することです。
network_mode: "bridge"
そしてポート80はその唯一の必要な露出をやり過ぎです
expose:
- "80"
出典:
https://github.com/jwilder/nginx-proxy/issues/552
https://github.com/docker/compose/issues/3012
this のようなプレーンでシンプルなnginxイメージを使用してみませんか。 DockerはすでにDNSを実行しています。