Локально у меня есть следующая конфигурация docker-compose:
nginx:
build:
context: ./nginx
ports:
- "80:80"volumes:
- ./../logs:/home/web/logs/
- ./../:/home/web/my-website.com/
depends_on:
- php
php:
build:
context: ./php
volumes:
- ./../:/home/web/my-website.com/
working_dir: /home/web/my-website.com/
expose:
- "8123"
php
В контейнер установлен Xdebug, я легко могу подключиться к нему из PhpStorm.
У меня есть удаленная база данных ClickHouse, которая подключена через туннель SSH. Когда я запускаю свой контейнер, я просто захожу в мой контейнер и выполняю:
ssh -4 [email protected] -p 2211 -L 8123:localhost:8123 -oStrictHostKeyChecking=no -Nf
После этого мой сайт может использовать это соединение, но когда я выполняю консольную команду
./yii analysis/start-charts 003b56fe-db47-11e8-bcc0-52540010e5bc 205
от PhpStorm я получаю исключение:
Failed to connect to 127.0.0.1 port 8123: Connection refused
Если я прыгаю в контейнер и запускаю ту же команду, все работает нормально.
В чем дело? Почему PhpStorm не видит мой SSH-туннель?
У меня есть ответ на сайте «суперпользователя»: https://superuser.com/questions/1374463/phpstorm-docker-xdebug-db-ssh-tunnel/1375961#1375961
Кроме того, я добавил ports
узел моего php
определение контейнера, теперь это следующее:
php:
build:
context: ./php
volumes:
- ./../:/home/web/my-website.com/
working_dir: /home/web/my-website.com/
expose:
- "8123"ports:
- "8123:8123"depends_on:
- redis
- mysql
Других решений пока нет …