我试图使用Colima运行apache-php docker容器。我的uni使用docker-compose提供了从我们课程配置的上游镜像派生的docker镜像。
容器工作,因为它应该,但我不能得到它的Xdebug连接到我的PhpStorm。
Xdebug日志中是这样写的:
Creating socket for 'host.docker.internal:9003', poll success, but error: Operation now in progress (29).
这根本不能说明什么。
设置是公认的相当复杂(x86 Apache运行通过QEMU在Docker在macOS Linux VM在ARM CPU上),但我可以做nc host.docker.internal 9003
从任何Docker容器,所以我不知道为什么Xdebug不能到达我的主机。(只在IDE运行时工作,没有其他端口,所以它肯定连接到PhpStorm。)
你知道这是怎么回事吗?
在Colina上,IP地址被硬编码为"192.168.5.2",因此设置xdebug.client_host=192.168.5.2
应该可以达到目的。现在它还有一个别名,叫做host.lima.internal
。
问题是单元的docker-compose.yml
配置了容器:
extra_hosts:
- "host.docker.internal:host-gateway"
,显然在某些情况下可以破坏host.docker.internal
: https://github.com/docker/for-linux/issues/264#issuecomment-759737542
解决方案是删除这两行。
Set:
xdebug.client_host=host.lima.internal
代替xdebug.client_host=host.docker.internal
和
xdebug.discover_client_host=0
代替xdebug.discover_client_host=1
php.ini配置 中的