Здравствуйте. У меня есть docker-compose.yml следующего содержания:
version: '3'
services:
rabbit:
hostname: rabbit
image: rabbitmq:3.6.1-management
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
ports:
- "5672:5672"
- "15672:15672"
healthcheck:
test: [ "CMD", "pwd" ]
timeout: 3s
retries: 20
networks:
- internal
php:
build:
dockerfile: Dockerfile
context: ./
volumes:
- ./:/var/www/html
- ./docker/conf/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini
depends_on:
db:
condition: service_healthy
rabbit:
condition: service_healthy
environment:
XDEBUG_CONFIG: client_host=host.docker.internal
PHP_IDE_CONFIG: "serverName=Docker"
networks:
- internal
db:
image: mysql:latest
environment:
MYSQL_DATABASE: mailing
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: user
MYSQL_PASSWORD: user
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
timeout: 3s
retries: 20
ports:
- 3306:3306
volumes:
- ./database:/var/lib/mysql
networks:
- internal
nginx:
image: nginx:1.19.2-alpine
ports:
- 8000:80
volumes:
- ./:/var/www/html
- ./docker/conf/nginx:/etc/nginx/conf.d
- ./docker/nginx/logs:/var/log/nginx/
links:
- php
networks:
- internal
depends_on:
db:
condition: service_healthy
networks:
internal:
driver: bridge
ipam:
driver: default
Если я поднимаю всё это дело, то при обращении к localhost:8000 вижу ошибку
502 Bad Gateway
connect() failed (111: Connection refused) while connecting to upstream, client: 172.23.0.1, server: , request: "GET / HTTP/1.1", upstream: "fastcgi://172.23.0.4:9000", host: "localhost:8000"
Причем статичные файлы типа файлов изображений файлов стиле и т.д. nginx отдает корректно. Похоже на то, что дело именно в php.
Но если я уберу раздел depends_on для контейнера php, то всё работает корректно.
Подскажите, пожалуйста, как решить эту проблему?
Заранее благодарен всем отозвавшимся.