Docker バージョン 19.03.5、ビルド 633a0ea838
Linux xxx 5.0.0-37-一般 #40~18.04.1-Ubuntu SMP 2019年11月14日木曜日 12:06:39 UTC x86_64 x86_64 x86_64 GNU/Linux
同じシステム上の複数のWordPressインスタンスに対してDockerを使用してNginxプロキシを設定するには、このガイドに従ってください。pattonwebz複数のWordPressコンテナ nginx-proxyコンテナで作成されたDockerfileは次のとおりです。
version: '2'
services:
nginx:
image: jwilder/nginx-proxy:alpine
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- /etc/nginx/conf.d
- /etc/nginx/vhost.d
- /usr/share/nginx/html
- ./certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
environment:
- ENABLE_IPV6=true
dockergen:
image: jwilder/docker-gen
container_name: dockergen
command: -notify-sighup nginx -watch /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
volumes_from:
- nginx
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
whoami:
image: jwilder/whoami
environment:
- VIRTUAL_HOST=whoami.local
nginx-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
environment:
#ACME_CA_URI:https://acme-staging.api.letsencrypt.org/directory
- NGINX_DOCKER_GEN_CONTAINER=dockergen
container_name: nginx-letsencrypt
volumes_from:
- nginx
volumes:
- ./certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
default:
external:
name: nginx-proxy
ネットワークnginx-proxyを作成しましたが、クリーンな環境(ボリュームとコンテナがクリア)でこのコマンドを実行すると、次のエラーが発生します。
whoami_1 | Listening on :8000
nginx | WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
nginx | is being generated in the background. Once the new dhparam.pem is in place, nginx will be reloaded.
nginx | Generating DH parameters, 2048 bit long safe prime, generator 2
nginx | forego | starting dockergen.1 on port 5000
nginx | forego | starting nginx.1 on port 5100
nginx | dockergen.1 | 2020/01/12 17:57:26 Generated '/etc/nginx/conf.d/default.conf' from 4 containers
nginx | dockergen.1 | 2020/01/12 17:57:26 Running 'nginx -s reload'
dockergen | 2020/01/12 17:57:26 Generated '/etc/nginx/conf.d/default.conf' from 4 containers
dockergen | 2020/01/12 17:57:26 Sending container 'nginx' signal '1'
dockergen | 2020/01/12 17:57:26 Watching docker events
dockergen | 2020/01/12 17:57:26 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification ''
nginx | dockergen | 2020/01/12 17:57:26 Received event die for container f34a91bce20f
nginx exited with code 2
dockergen | 2020/01/12 17:57:26 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification ''
nginx-letsencrypt | Info: Custom Diffie-Hellman group found, generation skipped.
nginx-letsencrypt | Reloading nginx docker-gen (using separate container dockergen)...
dockergen | 2020/01/12 17:57:27 Received signal: hangup
dockergen | 2020/01/12 17:57:27 Received signal: hangup
nginx-letsencrypt | Reloading nginx (using separate container f34a91bce20f421d03ef0e1a8190e55d0f592d4c2ef30920bcebaa527db4d60f)...
nginx-letsencrypt | {"message":"Cannot kill container: f34a91bce20f421d03ef0e1a8190e55d0f592d4c2ef30920bcebaa527db4d60f: Container f34a91bce20f421d03ef0e1a8190e55d0f592d4c2ef30920bcebaa527db4d60f is not running"}
dockergen | 2020/01/12 17:57:27 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification ''
nginx-letsencrypt | 2020/01/12 17:57:27 Generated '/app/letsencrypt_service_data' from 3 containers
nginx-letsencrypt | 2020/01/12 17:57:27 Running '/app/signal_le_service'
nginx-letsencrypt | 2020/01/12 17:57:27 Watching docker events
nginx-letsencrypt | 2020/01/12 17:57:27 Contents of /app/letsencrypt_service_data did not change. Skipping notification '/app/signal_le_service'
nginx-letsencrypt | 2020/01/12 17:57:27 Error: nginx-proxy container f34a91bce20f421d03ef0e1a8190e55d0f592d4c2ef30920bcebaa527db4d60f isn't running.
nginx-letsencrypt | Sleep for 3600s
したがって、nginxがコード2で終了すると、nginxがクラッシュし、問題が何であるかがわからないというメッセージが表示されます。また、nginxコンテナの行を無効にしようとしました。
- /var/run/docker.sock:/tmp/docker.sock:ro
しかし幸運はありません。
答え1
これが唯一の問題ではないかもしれませんが、設定が間違っています。jwilder/nginx-proxy
nginxスクリプトとdockergenスクリプトを含むファイルを使用できます。独自の固定nginxイメージ(公式のnginxイメージから構築)を使用してから、それを構成jwilder/dockergen
ファイルを作成するコンパニオンとして使用しようとしています。しかし、これら2つの画像は使用しないでください。
jwilder/nginx-proxy
これは処理文書でよく説明されています。個別コンテナの設定。
ログを詳しく見ると、nginx
コンテナがdockergenを起動してからコンテナ内で同じことを試みることがわかりますdockergen
。これはおそらく良い考えではないでしょう...
いずれかの構成(単一コンテナーまたはデュアルコンテナー)を変更することを決定し、再試行して問題が解決しないことを確認することをお勧めします。私は過去3年間、本番環境で別々のコンテナ設定を実行し、少なくとも毎月更新してきました。