【发布时间】:2019-04-14 09:38:10
【问题描述】:
在本地我有以下 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 连接到它。
我有通过 SSH 隧道连接的远程 ClickHouse 数据库。当我启动我的容器时,我只是进入我的容器并执行:
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 隧道?
【问题讨论】:
-
在 PhpStorm 中运行它等同于使用您机器的终端运行它:该命令不在容器内运行。我会假设在工作站的控制台中运行
./yii analysis/start-charts 003b56fe-db47-11e8-bcc0-52540010e5bc 205也会失败?顺便说一句,您是在终端中运行此命令还是在执行工具 > 启动 SSH 会话...> 等? -
@Ástþór,据我所知,PhpStorm 使用我在项目设置中设置的解释器。在我的情况下,它使用来自 docker 容器的解释器,在我的工作站上没有安装 PHP。根据你的第二个问题,首先我执行命令
docker exec -u www-data -it docker_php_1 /bin/bash然后才执行命令./yii analysis/start-charts ...
标签: php docker phpstorm xdebug ssh-tunnel