Как оказалось, моя докерская среда построена с помощью docker-compose, и все соответствующие контейнеры находятся в одной сети и имеют надлежащую иерархию зависимость_
Тем не менее. PHPStorm фактически был настроен на использование простого docker, а не docker-compose. Он нормально подключался к демону docker, но поскольку контейнер не учитывал компоновщик сборки, он не использовал сетевой макет, определенный в моем docker-compose.yml. Как только я сказал PHPStorm использовать docker-compose, все заработало нормально.
Кроме того, я заметил, что после запуска сеанса отладки в IDE после того, как уже загружен мой контейнер, он вызывает выход из контейнера после завершения сценария. Чтобы обойти это, мне пришлось создать зеркальный отладочный контейнер, который PHPStorm мог бы использовать по требованию. Мой конфиг выглядит следующим образом:
version: '3'
services:
web: &web
build: ./web
container_name: dev_web
ports:
- "80:80"
volumes:
- ${PROJECTS_DIR}/project:/srv/project
- ./web/logs/httpd:/var/log/httpd
depends_on:
- "db"
networks:
- backend
web-debug:
<< : *web
container_name: dev_web_debug
ports:
- "8181:80"
command: php -v
db:
image: mysql
container_name: dev_db
ports:
- "3306:3306"
volumes:
- ./db/conf.d:/etc/mysql/conf.d
- ./db/data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
networks:
- backend
networks:
backend:
driver: bridge
Это позволяет мне оперативно выполнять отладку в среде IDE, не убивая мой основной веб-контейнер.