Docker和XDebug不读断点VSCode

我一直在MAC上使用XDEbug和PHP Version 7.0。*在过去的6个月内使用远程debugging到Docker容器。

我正在运行一个较旧版本的Docker,它使用VirtualBox作为Docker的虚拟机,所有工作都很好。

我最近更新了docker到版本17.03.1并没有什么,但与xDebug的问题。 我已经联系vscode-php-debug的创build者通过他的存储库上的一个问题,然后他指出我把这个问题与xdebug和/或docker工人。

我的问题是以下几点:

XDebug正在运行并在我的容器上工作,xdebug日志显示它连接到我的IDE,但它只是closures连接,就好像在VSCode中设置断点时没有断点一样。

我发布在vscode-php-debug上的问题可以在这里find

其中有我的xDebug日志和VSCodedebugging日志的副本…它显示连接已build立,但没有断点。

我已经阅读了几个博客泊坞窗现在需要一个环回ip创build连接到xdebug工作,我也试过了,失败了。

我发现使用一个这么久之后,如果没有一个debugging器,debugging起来是非常困难的。

我已经尝试了许多configuration,重新安装,重新启动,重build图像/容器,甚至尝试freenode的docker和xdebug irc频道没有任何成功。

由于您在Mac上使用泊坞窗我发布我的解决scheme的工作方式。 大部分学分在Docker论坛上发布到这个post 。

假设你安装的xdebug是正确的,这是我在php.iniconfiguration。

 [xdebug] xdebug.remote_host=10.254.254.254 xdebug.remote_autostart=1 xdebug.idekey = PHPSTORM xdebug.default_enable = 0 xdebug.remote_enable = 1 xdebug.remote_connect_back = 0 xdebug.profiler_enable = 1 

您可以在terminal中执行此命令来testing您的configuration。 sudo ifconfig en0 alias 10.254.254.254 255.255.255.0

如果这是工作,你可以将其转换成plist文件,并将其放置在以下位置。 /Library/LaunchDaemons/com.docker.xdebugFix.plist 。 下面你会发现我的版本的plist文件。

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.docker.xdebugFix</string> <key>ProgramArguments</key> <array> <string>ifconfig</string> <string>en0</string> <string>alias</string> <string>10.254.254.254</string> <string>255.255.255.0</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> 

注意:plist只能在Mac重新启动后才能使用。

之后,我用这样的debugging服务器来设置我的PHP风暴: PHP的风暴配置1

PHP的风暴配置2

之后,我的断点在哪里工作,如果你使用的是铬,你也需要使用xdebug的扩展名,但是我敢肯定你知道这个,因为你以前用过它。