Xdebug - 从 docker 内部触发 PhpStorm 中的调试

Xdebug - trigger debug in PhpStorm from inside a docker

我已经能够让我的 PHP 脚本在从浏览器打开页面时触发我在 PhpStorm 中的侦听器。我只需要在 docker 中安装 Xdebug,并使用

配置它
xdebug.remote_connect_back = On
xdebug.remote_enable = On
xdebug.remote_autostart = Off

现在我希望在从 docker 中的 PHP CLI 调用脚本时触发它。我尝试了一些选项,例如 php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=1 -dxdebug.remote_connect_back=1 -dxdebug.idekey=PHPSTORM -dxdebug.remote_port=9000 myscript.php 但没有成功。我错过了什么吗?

Dockerfile需要有EXPOSE 9000(打开端口:9000

...否则您将无法从外界连接 xdebug

将 IDE 放入容器中是有问题的。

所以,感谢@LazyOne 的评论,我得到了答案。从 docker 内部,脚本不知道应该将调试会话发送到哪个主机。我只需要从 docker 的 POV 中找到我的 PC ip,并将其用作主机。

通过 ip addr 找到它并查找 docker0 条目,然后将其用作主机:

export PHP_IDE_CONFIG="serverName=localhost"

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=1 -dxdebug.remote_connect_back=1 -dxdebug.idekey=PHPSTORM -dxdebug.remote_port=9000 -dxdebug.remote_host=172.17.0.4 myscript.php