Локально у меня есть следующая конфигурация 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" Теперь все работает
Спасибо за ваш ответ, это помогло мне. Но я должен добавить, что мне пришлось добавить узел
portsв определение контейнераphp. Я добавляю это изменение к вопросу