คอนเทนเนอร์ PHP-FPM หนึ่งรายการ (7.2) ซึ่งเป็นสมาชิกของสแต็ก LAPP แบบคลาสสิก เปิดเผยพอร์ต 9000 อย่างถูกต้องเมื่อเปิดใช้งานด้วย นักเทียบท่าเขียน แต่ไม่มีอะไรเมื่อเริ่มต้นโดย Docker Swarm. ฉันควรพูดถึงว่าคอนเทนเนอร์กำลังทำงานอยู่ (ดูผลลัพธ์ด้านล่าง) และฉันสามารถเปิด TTY bash ได้
ดังนั้นด้วย นักเทียบท่าเขียนเว็บแอปพลิเคชันทำงานได้อย่างสมบูรณ์ แต่ด้วย Swarm ทำให้ Apache ออก 503 Service Unavailable ไม่มีอะไรเปลี่ยนแปลงระหว่างการทดสอบกับเครื่องยนต์ต่างๆ คุณมีเงื่อนงำเกี่ยวกับพฤติกรรมนี้หรือไม่?
นักเทียบท่า-compose.yml
รุ่น: '3.5'
บริการ:
โพสต์เกรส:
env_file: ./.env
ภาพ: "postgres:9.5.24"
ปริมาณ:
- ฐานข้อมูล:/var/lib/postgresql/data
เครือข่าย:
- ภายใน
ผู้ดูแลระบบ:
ภาพ : แอดมิน
เครือข่าย:
- ภายใน
- traefik สาธารณะ
ปรับใช้:
ป้ายกำกับ:
- "traefik.enable=true"
- "traefik.http.routers.adminer.rule=Host(`adminer.example.com`)"
- "traefik.http.routers.adminer.entrypoints=websecure"
- "traefik.http.routers.adminer.tls.certresolver=letsencryptresolver"
- "traefik.http.services.adminer.loadbalancer.server.port=8080"
- "traefik.port=80"
อาปาเช่:
env_file: ./.env
รูปภาพ: visio_rdv_apache: ล่าสุด
สร้าง:
บริบท: นักเทียบท่า/รูปภาพ/apache2.4
นักเทียบท่าไฟล์: Dockerfile
หาเรื่อง:
UID: ${HOST_UID}
ROOT_URL: ${ROOT_URL}
พอร์ต:
- 8000:80
สิ่งแวดล้อม:
FPM_HOST: php:9000
ROOT_URL: ${ROOT_URL}
ปริมาณ:
- ${LOGS_DIR}/apache/:/var/log/httpd/
- ${RELATIVE_APP_PATH}:/var/www/html
ลิงค์:
- โพสเกรส
- php
เครือข่าย:
- ภายใน
- traefik สาธารณะ
ปรับใช้:
ป้ายกำกับ:
- "traefik.enable=true"
- "traefik.http.routers.visio_rdv.rule=Host(`test.example.com`)"
- "traefik.http.routers.visio_rdv.entrypoints=websecure"
- "traefik.http.routers.visio_rdv.tls.certresolver=letsencryptresolver"
- "traefik.http.services.visio_rdv.loadbalancer.server.port=80"
- "traefik.port=80"
php:
env_file: .env
ลิงค์:
- เอฟทีพี
ภาพ: visio_rdv_php:ล่าสุด
สร้าง:
บริบท: นักเทียบท่า/รูปภาพ/php.ini
นักเทียบท่าไฟล์: Dockerfile
หาเรื่อง:
UID: ${HOST_UID}
เขตเวลา: ${TIMEZONE}
พร็อกซี: ${http_proxy}
ปริมาณ:
- ftp_data:/var/www/ftp:rw
- ${RELATIVE_APP_PATH}:/var/www/html
เครือข่าย:
- ภายใน
ftp:
env_file: .env
รูปภาพ: "fauria/vsftpd:latest"
พอร์ต:
- "9520:20"
- "9521:21"
- "21100-21110:21100-21110"
สิ่งแวดล้อม:
FTP_USER: ${FTP_USER}
FTP_PASS: ${FTP_PASS}
PASV_MIN_PORT: 21100
PASV_MAX_PORT: 21100
ปริมาณ:
- ftp_data:/home/vsftpd/${AUTOMATION_CLIENT_NAME}:rw
เครือข่าย:
- ภายใน
ปริมาณ:
ftp_data:
ฐานข้อมูล:
เครือข่าย:
traefik สาธารณะ:
ภายนอก: จริง
ภายใน:
ภายนอก: เท็จ
ด้วย Docker Swarm
บันทึก Apache:
[วันพุธที่ 04 ส.ค. 07:35:16.382246 2021] [proxy:error] [pid 11] (111)การเชื่อมต่อถูกปฏิเสธ: AH00957: FCGI: พยายามเชื่อมต่อกับ 10.0.4.93:9000 (*) ล้มเหลว
[วันพุธที่ 04 ส.ค. 07:35:16.382314 2021] [proxy_fcgi:ข้อผิดพลาด] [pid 11] [ไคลเอนต์ 10.0.0.2:1035] AH01079: ไม่สามารถเชื่อมต่อกับแบ็กเอนด์: php, ผู้อ้างอิง: http://test.example.com /
รายการบริการฝูง:
บริการนักเทียบท่า ls
ID NAME MODE จำลองพอร์ตรูปภาพ
um2txtpz8534 traefik_reverse-proxy จำลองแบบ 1/1 traefik:v2.4
ahf7uukapxbr my_stack_adminer จำลองแบบ 1/1 ผู้ดูแลระบบ: ล่าสุด
ue8qekmg0ff0 my_stack_apache จำลองแบบ 1/1 my_stack_apache: ล่าสุด my_stack*:8000->80/tcp
x9igaslhsx11 my_stack_ftp จำลองแบบ 1/1 fauria/vsftpd:latest *:9520-9521->20-21/tcp, *:21100-21110->21100-21110/tcp
jpk4qzqs1tfx my_stack_php จำลองแบบ 1/1 my_stack_php:latest
ih67rh82vp9e my_stack_postgres จำลองแบบ 1/1 postgres:9.5.24
ฉันพยายามเพิ่ม เครื่องมือสุทธิ ไปที่อิมเมจ PHP เพื่อทดสอบการเชื่อมต่อกับ เอ็นซี. ผลลัพธ์เดียวกัน php.ini IP อินสแตนซ์คอนเทนเนอร์ได้รับการแก้ไขอย่างถูกต้อง แต่การเชื่อมต่อ TCP กับพอร์ต 9000 ถูกปฏิเสธ
ฉันใช้ vars สภาพแวดล้อมจำนวนมาก และเพื่อบรรเทาคุณลักษณะที่ขาดหายไปด้วย Swarm ฉันจึงใช้ การกำหนดค่านักเทียบท่าเขียน เอาต์พุตคำสั่งเพื่อสร้างเสร็จสมบูรณ์ นักเทียบท่า-compose.yml ไฟล์.
กับ นักเทียบท่าเขียน
ชื่อ Command State Ports
--------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------
my_stack_adminer_1 entrypoint.sh นักเทียบท่า-php-e ... เพิ่มขึ้น 8080/tcp
my_stack_apache_1 /bin/sh -c apachectl -D FO ... เพิ่มขึ้น 0.0.0.0:8000->80/tcp
my_stack_ftp_1 /usr/sbin/run-vsftpd.sh เพิ่มขึ้น 0.0.0.0:9520->20/tcp, 0.0.0.0:9521->21/tcp, 0.0.0.0:21100->21100/tcp, 0.0.0.0:21101 ->21101/tcp, 0.0.0.0:21102->21102/tcp,
0.0.0.0:21103->21103/tcp, 0.0.0.0:21104->21104/tcp, 0.0.0.0:21105->21105/tcp, 0.0.0.0:21106->21106/tcp, 0.0.0.0:21107- >21107/tcp,
0.0.0.0:21108->21108/tcp, 0.0.0.0:21109->21109/tcp, 0.0.0.0:21110->21110/tcp
my_stack_php_1 php-fpm -R -F เพิ่มขึ้น 9000/tcp
my_stack_postgres_1 docker-entrypoint.sh postgres เพิ่มขึ้น 5432/tcp