如何调试安装到在docker beta for mac上运行的容器的php

前端之家收集整理的这篇文章主要介绍了如何调试安装到在docker beta for mac上运行的容器的php前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我花了半天时间尝试不同的事情,包括我在gist.github.com遇到的这个解决方

我有一个docker-compose文件,它安装了一个包含我的客户端和服务器项目的文件夹:

 volumes:
    - ~/projectx:/projectx

我的docker PHP.ini包含以下xdebug选项

[xdebug]
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back=On
xdebug.var_display_max_children = 999
xdebug.var_display_max_data = 999
xdebug.var_display_max_depth = 100

我安装了xdebug chrome extension

在我的mac主机文件中,我有以下127.0.0.1 localhost dtest.xxx.com所以我可以通过dtest.xxx.com访问我的网络应用程序(和其他docker web应用程序),这些都可以运行应用程序

PHPstorm(版本2016.1.2)中的首选项 – >语言与框架 – > PHP – >我有的服务器:

host = dtest.xxx.com,port = 80,Debugger = Xdebug使用路径映射,我有
文件/目录设置为/ Users /< myname> / projectx / server
服务器上的绝对路径设置为/ projectx / server

我已经尝试将xdebug.remote_host设置为从ifconfig获取的macs ip以及在/Users/\u0026lt;myname\u0026gt;/Library/Containers/com.docker.docker/Data/database/com.docker.driver中尝试ip. AMD64架构的Linux / SLIRP /主机

但我无法打破断点,我甚至添加了xdebug_break()双重检查.
我还运行最新的docker beta版本1.12.0-rc3-beta18(版本:9996)

我非常感谢任何人的帮助,对我来说这是一个真正的阻碍.

如果需要任何进一步的信息,我很乐意提供.

最佳答案
更新2:

正如@Rashidul指出的那样,自17.06版的Mac版docker,您可以用xdebug.remote_host =“docker.for.mac.localhost”替换xdebug.remote_host =“192.168.65.1”

更新:正确的方式

所以我最终发现我在docker中的xdebug设置应该是

xdebug.enable=1
xdebug.remote_enable = 1
xdebug.idekey="PHPSTORM"
xdebug.remote_port=9000
xdebug.remote_host="192.168.65.1"
xdebug.remote_connect_back=0

其中192.168.65.1是〜/ Library / Containers / com.docker.docker / Data / database / com.docker.driver.amd64-linux / slirp / host中的条目

在最近的更新中,上面不再存在,为了获得Docker主机IP,我知道使用下面的.profile

export DOCKER_HOST_IP=$(ipconfig getifaddr en0)

另外,请确保在Chrome扩展中正确设置idekey,在我的情况下为PHPSTORM
有了这个我不再需要ssh隧道

原始解决方

我使用的解决方法是使用命令打开运行PHP的docker容器的ssh隧道,在我的例子中,我将docker容器ssh端口映射到12,因此-p 12

ssh -R 9000:localhost:9000 root@dtest.xxx.com -p:12
原文链接:https://www.f2er.com/docker/437004.html

猜你在找的Docker相关文章