최근에 링크를 사용하여 대체하기 위해 Docker 1.9 및 Docker-Compose 1.5의 네트워킹 기능으로 마이그레이션하기 시작했습니다.
지금까지 링크로 nginx가 docker-compose를 통해 한 그룹의 다른 서버에있는 내 php5-fpm fastcgi 서버에 연결하는 데 문제가 없었습니다. 새로 docker-compose --x-networking up
php-fpm을 실행 하면 mongo 및 nginx 컨테이너가 부팅되지만 nginx는 즉시 종료됩니다.[emerg] 1#1: host not found in upstream "waapi_php_1" in /etc/nginx/conf.d/default.conf:16
그러나 php와 mongo 컨테이너가 실행되는 동안 (nginx 종료) docker-compose 명령을 다시 실행하면 nginx가 시작되고 그때부터 제대로 작동합니다.
이것은 내 docker-compose.yml
파일입니다.
nginx:
image: nginx
ports:
- "42080:80"
volumes:
- ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
php:
build: config/docker/php
ports:
- "42022:22"
volumes:
- .:/var/www/html
env_file: config/docker/php/.env.development
mongo:
image: mongo
ports:
- "42017:27017"
volumes:
- /var/mongodata/wa-api:/data/db
command: --smallfiles
이것은 내 default.conf
nginx입니다.
server {
listen 80;
root /var/www/test;
error_log /dev/stdout debug;
access_log /dev/stdout;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /index.php$is_args$args;
}
location ~ ^/.+\.php(/|$) {
# Referencing the php service host (Docker)
fastcgi_pass waapi_php_1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# We must reference the document_root of the external server ourselves here.
fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
nginx가 단일 docker-compose 호출로만 작동하도록하려면 어떻게해야합니까?