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.ini
configuration。
[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风暴:
之后,我的断点在哪里工作,如果你使用的是铬,你也需要使用xdebug的扩展名,但是我敢肯定你知道这个,因为你以前用过它。
- 远程debuggingDocker中的节点9
- .Net Core Clrdebugging器VSDBG在Windows Docker容器中连接到远程进程时暂停应用程序
- 在Docker中debuggingDjango代码
- 使用XDebug从Docker Container进行远程debugging不起作用
- debugging远程主机上的Docker容器上运行的NodeJs应用程序的最佳方式是什么?
- JMX和在Docker内的Tomcat上进行debugging
- 如何debuggingREDIS,APACHE发出一个Docker容器?
- 无法将debugging器附加到在主机模式下在Docker容器内运行的node.js应用程序
- 在使用Docker-Compose时,使用JPDA远程debugging将不会通过eclipse连接到Tomcat