один контейнер PHP-FPM (7.2), член классического стека LAPP, правильно предоставляет порт 9000 при запуске с docker-compose
но ничего при запуске Docker Swarm. Должен ли я упомянуть, что контейнер запущен (см. вывод ниже), и я могу запустить на нем TTY bash.
Так с docker-compose
, веб-приложение полностью функционально, но с Swarm Apache выдает ошибку 503 Service Unreachable. Между тестами с разными двигателями ничего не меняется. Есть ли у вас какое-либо представление об этом поведении?
докер-compose.yml
версия: '3.5'
Сервисы:
постгрес:
env_file: ./.env
изображение: "postgres:9.5.24"
тома:
- база данных:/var/lib/postgresql/data
сети:
- внутренний
администратор:
изображение: администратор
сети:
- внутренний
- траефик-общественный
развертывать:
этикетки:
- "traefik.enable=true"
- "traefik.http.routers.adminer.rule=Хост(`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
докерфайл: Докерфайл
аргументы:
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
ссылки:
- постгрес
- пхп
сети:
- внутренний
- траефик-общественный
развертывать:
этикетки:
- "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
докерфайл: Докерфайл
аргументы:
UID: ${HOST_UID}
ЧАСОВОЙ ПОЯС: ${TIMEZONE}
ПРОКСИ: ${http_proxy}
тома:
- ftp_data:/var/www/ftp:rw
- ${RELATIVE_APP_PATH}:/var/www/html
сети:
- внутренний
FTP:
env_file: .env
изображение: "fauria/vsftpd: последний"
порты:
- "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/${АВТОМАТИЧЕСКОЕ_ИМЯ_КЛИЕНТА}:rw
сети:
- внутренний
тома:
ftp_data:
база данных:
сети:
traefik-public:
внешний: правда
внутренний:
внешний: ложный
С Docker Swarm
Логи апача:
[Среда, 04 августа, 07:35:16.382246 2021] [прокси:ошибка] [pid 11] (111)Отказ в подключении: AH00957: FCGI: попытка подключения к 10.0.4.93:9000 (*) не удалась
[Среда, 04 августа, 07:35:16.382314 2021] [proxy_fcgi:error] [pid 11] [client 10.0.0.2:1035] AH01079: не удалось установить соединение с серверной частью: php, реферер: http://test.example.com /
Список сервисов Swarm:
докер сервис лс
ID НАЗВАНИЕ РЕЖИМ РЕПЛИКА ИЗОБРАЖЕНИЕ ПОРТЫ
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:последняя *:9520-9521->20-21/tcp, *:21100-21110->21100-21110/tcp
jpk4qzqs1tfx my_stack_php реплицирован 1/1 my_stack_php: последний
ih67rh82vp9e my_stack_postgres реплицировано 1/1 postgres:9.5.24
я пытался добавить сетевые инструменты
к образу PHP, чтобы вручную проверить соединение с нк
. Тот же результат, php
IP-адрес экземпляра контейнера разрешен правильно, но любое TCP-соединение с портом 9000 отклонено.
Я использую множество переменных окружения, и чтобы смягчить отсутствующую функцию Swarm, я использую конфигурация для создания докеров
вывод команды для создания полного докер-compose.yml
файл.
С docker-compose
Имя порта состояния команды
--------------------------------------------- --------------------------------------------- --------------------------------------------- --------------------------------------------- --------
my_stack_adminer_1 entrypoint.sh docker-php-e ... Up 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, 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 Up 5432/tcp