로컬 개발을 위해 5개의 사이트로 구성된 제품군이 있습니다.
각 사이트는 자체 php-fpm 컨테이너에서 실행됩니다.
.conf
모든 사이트는 모든 사이트의 파일을 포함하는 단일 nginx 컨테이너에서 제공됩니다 . 이들은 포트를 공유하며 server_name으로 식별됩니다.
질문
nginx 컨테이너를 시작하려면 5개의 php-fpm 컨테이너가 모두 이미 실행 중이어야 합니다.
그 중 하나가 실행되고 있지 않으면 nginx 컨테이너는 로그에 다음 내용이 포함된 루프에서 실패합니다.
2023-03-28 12:39:28 meq_nginx | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
2023-03-28 12:39:28 meq_nginx | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
2023-03-28 12:39:28 meq_nginx | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
2023-03-28 12:39:28 meq_nginx | 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist
2023-03-28 12:39:28 meq_nginx | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
2023-03-28 12:39:28 meq_nginx | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
2023-03-28 12:39:28 meq_nginx | /docker-entrypoint.sh: Configuration complete; ready for start up
2023-03-28 12:39:28 meq_nginx | 2023/03/28 16:39:28 [emerg] 1#1: host not found in upstream "mysite" in /etc/nginx/conf.d/mysite.conf:29
2023-03-28 12:39:28 meq_nginx | nginx: [emerg] host not found in upstream "mysite" in /etc/nginx/conf.d/mysite.conf:29
/etc/nginx/conf.d/mysite.conf:29의 업스트림 'mysite'에서 호스트를 찾을 수 없습니다.
다음 구성을 참조하세요.
server {
listen 443 ssl http2;
location ~ ^/index\\.php(/|$) {
fastcgi_pass mysite:9000;
...
...여기서 "mysite"는 아직 시작되지 않은 php-fpm 컨테이너의 이름입니다.
원하는 행동
- 모든 사이트는 컨테이너가 실행되는 한 작동해야 합니다.
- 구성된 사이트 중 하나에 대한 컨테이너가 실행되고 있지 않은 경우 nginx 컨테이너가 다른 사이트를 시작하고 제공하는 것을 방해해서는 안 됩니다.
- nginx가 시작된 후 사이트의 컨테이너가 시작되면 nginx가 이를 제공할 수 있어야 합니다.