我正在为我的团队设置Docker开发环境。在这种环境中,我们希望将Xdebug与Docker集成以允许调试。看来最简单的方法是将Sublime Text连接到Docker实例,然后在Sublime Text上安装Xdebug ontop。我找到了以下指南,用于将Sublime Text与Docker(http://domeide.github.io/)集成,以及本指南,用于将Xdebug与Sublime Text(https://www.sitepoint.com/debugging-xdebug-sublime-text-3/)集成。我想知道的是,是否有人有建立类似环境的经验?有更简单的方法吗?这看起来像是在Docker中调试PHP代码的正确方法吗?
答案 0 :(得分:1)
此解决方案也适用于Sublime Text - 对于Visual Studio Code,我最近才开始使用它。我发现这些remote_host和其他Xdebug设置在Windows 10 Pro和OS X上都可以使用最新版本的Docker Community Edition。
在Xdebug扩展配置中,我将这些与Xdebug扩展安装一起设置在包含php的docker hub的映像包的Dockerfile中。这个答案底部的帖子有一个链接,关于如何在Dockerfile中完成此操作以及如何构建映像,然后将其添加到docker-compose文件中。
xdebug.remote_connect_back
设置需要关闭:xdebug.remote_connect_back=0
xdebug.remote_autostart=1
它才有效。Windows 10 Professional运行Docker版本17.03.0-ce-win1,打开命令提示符并输入ipconfig。该地址列在DockerNAT下。例如:
ipconfig
Ethernet adapter vEthernet (DockerNAT):
IPv4 Address. . . . . . . . . . . : 10.0.75.1
OS X El Capitan运行Docker版本17.03.0-ce-mac2,为您现有的子网掩码创建IP 10.254.254.254的别名。
sudo ifconfig en0 alias 10.254.254.254 255.255.255.0
然后根据以上示例,按照以下步骤使用IP作为主机的xdebug.remote_host
设置:
10.0.75.1
10.254.254.254
注意,如果在OS X中遇到冲突,可以删除这样的别名。
sudo ifconfig en0 -alias 10.254.254.254
我使用Visual Studio Code和vscode-php-debug PHP调试适配器来监听Xdebug并逐步执行我的代码。请注意,以下需要包含在项目launch.json
文件中,以便VS Code将远程服务器文件映射到本地计算机。这是来自我的项目及其典型的卷位置,您的serverSourceRoot看起来是相同的。
"serverSourceRoot": "/var/www/html",
"localSourceRoot": "${workspaceRoot}"
docker-compose,nginx-proxy的整个设置,包括如何使用Xdebug构建图像以及更多Docker WordPress Dev Environment - Remote Debugging with Xdebug and VS Code