ฉันเพิ่งเริ่มย้ายไปยังคุณสมบัติระบบเครือข่ายของ Docker 1.9 และ Docker-Compose 1.5 เพื่อแทนที่โดยใช้ลิงก์
จนถึงตอนนี้การเชื่อมโยงไม่มีปัญหากับ nginx ที่เชื่อมต่อกับเซิร์ฟเวอร์ fastcgi php5-fpm ของฉันที่อยู่ในเซิร์ฟเวอร์อื่นในกลุ่มเดียวผ่านทางนักเทียบท่า ใหม่แม้ว่าเมื่อฉันรัน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
อย่างไรก็ตามหากฉันเรียกใช้คำสั่ง docker-compose อีกครั้งในขณะที่ php และ mongo container กำลังทำงานอยู่ (nginx ออก) 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 ทำงานร่วมกับการเรียกใช้นักเทียบท่าเพียงเครื่องเดียวได้อย่างไร