Локально у меня есть следующая конфигурация 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 login@host.com -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-туннель?
UPD Я изменил хост clickhouse на Docker-контейнер и изменил определение php
контейнера следующим образом:
php:
build:
context: ./php
volumes:
- ./../:/home/web/my-website.com/
working_dir: /home/web/my-website.com/
expose:
- "8123"
ports:
- "8123:8123"
Теперь все работает