호스트 컨테이너를 사용할 수 없는 경우 nginx 시작

호스트 컨테이너를 사용할 수 없는 경우 nginx 시작

로컬 개발을 위해 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가 이를 제공할 수 있어야 합니다.

관련 정보