将Docker与Xdebug和Sublime Text集成到PHP环境中

我正在为我的团队build立一个Docker开发环境。 在这个环境中,我们希望将Xdebug与Docker集成以允许进行debugging。 看来最简单的方法是将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 / )。 我想知道的是,如果任何人有任何build立类似环境的经验? 有没有更简单的方法来做到这一点? 这似乎是正确的方式来debuggingDocker中的PHP代码?

这个解决scheme也可能适用于Sublime Text – 对于Visual Studio Code,我刚刚得到了这个工作。 我发现这些remote_host和其他Xdebug设置可以在Windows 10 Pro和OS X上使用最新版本的Docker Community Edition。

在Xdebug扩展configuration中,我将它们与来自docker hub的包含php的图像包的Dockerfile中的Xdebug扩展安装一起设置。 有一个链接到这个答案的底部,这是如何在Dockerfile中完成的,以及如何构build图像,然后将其添加到docker-compose文件中。

  1. xdebug.remote_connect_back设置需要closures: xdebug.remote_connect_back=0
  2. 自动启动xdebug.remote_autostart=1它只是工作。
  3. 需要根据Windows或OS X更改xdebug.remote_host = 127.0.0.1,如下所示:

运行Docker版本17.03.0-ce-win1的Windows 10 Professional,打开命令提示符并inputipconfig。 该地址列在DockerNAT下。 例如:

 ipconfig Ethernet adapter vEthernet (DockerNAT): IPv4 Address. . . . . . . . . . . : 10.0.75.1 

运行Docker版本17.03.0-ce-mac2的OS X El Capitan,为您现有的子网掩码创build一个IP地址为10.254.254.254的别名。

 sudo ifconfig en0 alias 10.254.254.254 255.255.255.0 

然后根据上面的示例,使用IP为您的主机的xdebug.remote_host设置如下:

  1. Windows 10.0.75.1
  2. OS X: 10.254.254.254

请注意,如果您在OS X中遇到冲突,则可以像这样删除别名。

 sudo ifconfig en0 -alias 10.254.254.254 

我使用Visual Studio Code与vscode-php-debug PHPdebugging适配器来侦听Xdebug并逐步执行我的代码。 请注意,需要在项目launch.json文件中包含以下内容,以便VS代码将远程服务器文件映射到本地计算机。 这是来自我的项目和它的典型卷位置,你的serverSourceRoot看起来是一样的。

 "serverSourceRoot": "/var/www/html", "localSourceRoot": "${workspaceRoot}" 

docker-compose,nginx-proxy的整个设置,包括如何在Docker WordPress开发环境中使用Xdebug等构build图像- 使用Xdebug和VS Code远程debugging

Interesting Posts