un container PHP-FPM (7.2), membru al stivei LAPP clasice, expune corect portul 9000 atunci când este lansat cu docker-compune
dar nimic atunci când a început de Docker Swarm. Ar trebui să menționez că containerul rulează (a se vedea rezultatul de mai jos) și pot lansa un bash TTY pe el.
Deci cu docker-compune
, aplicația web este complet funcțională, dar cu Swarm, Apache emite un serviciu 503 indisponibil. Nu se schimbă nimic între testele cu motoare diferite. Ai vreo idee despre acest comportament?
docker-compose.yml
versiunea: „3.5”
Servicii:
postgres:
fişier_env: ./.env
imagine: "postgres:9.5.24"
volume:
- baza de date:/var/lib/postgresql/data
retele:
- intern
administrator:
imagine: administrator
retele:
- intern
- traefik-public
implementeaza:
etichete:
- "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”
apache:
fişier_env: ./.env
imagine: visio_rdv_apache:latest
construi:
context: docker/images/apache2.4
dockerfile: Dockerfile
argumente:
UID: ${HOST_UID}
ROOT_URL: ${ROOT_URL}
porturi:
- 8000:80
mediu inconjurator:
FPM_HOST: php:9000
ROOT_URL: ${ROOT_URL}
volume:
- ${LOGS_DIR}/apache/:/var/log/httpd/
- ${RELATIVE_APP_PATH}:/var/www/html
link-uri:
- postgres
- php
retele:
- intern
- traefik-public
implementeaza:
etichete:
- "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:
fisier_env: .env
link-uri:
- ftp
imagine: visio_rdv_php:latest
construi:
context: docker/images/php
dockerfile: Dockerfile
argumente:
UID: ${HOST_UID}
TIMEZONE: ${TIMEZONE}
PROXY: ${http_proxy}
volume:
- ftp_data:/var/www/ftp:rw
- ${RELATIVE_APP_PATH}:/var/www/html
retele:
- intern
ftp:
fisier_env: .env
imagine: "fauria/vsftpd:latest"
porturi:
- „9520:20”
- „9521:21”
- „21100-21110:21100-21110”
mediu inconjurator:
FTP_USER: ${FTP_USER}
FTP_PASS: ${FTP_PASS}
PASV_MIN_PORT: 21100
PASV_MAX_PORT: 21100
volume:
- ftp_data:/home/vsftpd/${AUTOMATION_CLIENT_NAME}:rw
retele:
- intern
volume:
ftp_data:
Bază de date:
retele:
traefik-public:
extern: adevărat
intern:
extern: fals
Cu Docker Swarm
Jurnalele Apache:
[Mer Aug 04 07:35:16.382246 2021] [proxy:error] [pid 11] (111)Conexiune refuzată: AH00957: FCGI: încercarea de conectare la 10.0.4.93:9000 (*) a eșuat
[Miercuri, 04 august 07:35:16.382314 2021] [proxy_fcgi:error] [pid 11] [client 10.0.0.2:1035] AH01079: nu s-a putut face conexiunea la backend: php, referer: http://test.example.com /
Lista serviciilor Swarm:
serviciul docker ls
ID NUME MOD REPLICA PORTURI IMAGINE
um2txtpz8534 traefik_reverse-proxy replicat 1/1 traefik:v2.4
ahf7uukapxbr my_stack_adminer replicat 1/1 adminer:latest
ue8qekmg0ff0 my_stack_apache replicat 1/1 my_stack_apache:cel mai recent my_stack*:8000->80/tcp
x9igaslhsx11 my_stack_ftp replicat 1/1 fauria/vsftpd:latest *:9520-9521->20-21/tcp, *:21100-21110->21100-21110/tcp
jpk4qzqs1tfx my_stack_php replicat 1/1 my_stack_php:latest
ih67rh82vp9e my_stack_postgres replicat 1/1 postgres:9.5.24
Am încercat să adaug net-instrumente
la imaginea PHP, pentru a testa manual conexiunea cu nc
. Același rezultat, php
IP-ul instanței containerului este corect rezolvat, dar orice conexiune TCP la portul 9000 este refuzată.
Folosesc o mulțime de variabile de mediu și, pentru a atenua caracteristica lipsă cu Swarm, folosesc docker-compose config
ieșire de comandă pentru a genera complet docker-compose.yml
fişier.
Cu docker-compune
Denumirea Comandă State Ports
--------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------
my_stack_adminer_1 entrypoint.sh docker-php-e ... Până la 8080/tcp
my_stack_apache_1 /bin/sh -c apachectl -D FO ... Up 0.0.0.0:8000->80/tcp
my_stack_ftp_1 /usr/sbin/run-vsftpd.sh Up 0.0.0.0:9520->20/tcp, 0.0.0.0:9521->21/tcp, 0.0.0.0:21100->21100/tcp, .00:21.01, . ->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->210.0.0.0.0.0.0.0. >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 Up 9000/tcp
my_stack_postgres_1 docker-entrypoint.sh postgres Up 5432/tcp