看起来一切正常,但 VSCode 并没有停止调试。我有一个运行 PHP 映像的 docker 容器。我需要做什么才能在断点处停下来?我在日志中看不到错误,恰恰相反,他们似乎在说断点配置得很好,并且代码运行正确。容器的 IP为 172.22.0.2,我的主机的 IP为 172.22.0.1文件xdebugo.so存在于容器内: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so主机host.docker.internal已正确设置。我使用以下方法构建了我的图像:docker build -t phpdebug:5 .该文件/usr/local/etc/php/conf.d/xdebug.ini存在于正在运行的容器中。启动.json{ "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000, "log": true, "externalConsole": false, "pathMappings": { "/": "${workspaceRoot}/" } } ]}码头工人-compose.ymlversion: '2'services: app: restart: 'no' image: phpdebug:5 command: php -S 0.0.0.0:8000 ports: - "8000:8000" volumes: - phpdata:/app environment: PHP_EXTENSION_XDEBUG: 1volumes: phpdata: driver: local driver_opts: type: 'none' o: 'bind' device: '/home/element/php/tuto'/usr/local/etc/php/conf.d/xdebug.inizend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"xdebug.default_enable=1xdebug.remote_enable=1xdebug.remote_port=9000xdebug.remote_handler=dbgpxdebug.remote_connect_back=0xdebug.remote_host=host.docker.internalxdebug.idekey=VSCODExdebug.remote_autostart=1xdebug.remote_log=/usr/local/etc/php/xdebug.log/etc/hosts127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters172.22.0.2 d484e93eed2a172.22.0.1 host.docker.internalDockerfile:FROM phpRUN pecl install xdebugRUN ip -4 route list match 0/0 | awk '{print $3 "host.docker.internal"}' >> /etc/hostsCOPY custom.ini /usr/local/etc/php/conf.d/xdebug.ini
1 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
日志显示在<init数据包中:
file:///app/index.php
所有断点的配置如下:
file:///home/element/php/tuto/result.php
这表明您所做的路径映射不正确:
"pathMappings": {
"/": "${workspaceRoot}/"
}
在您的情况下,我认为应该是以下内容,前提是这两个目录都有一个index.phpandresult.php文件。如果没有,您需要调整第二个路径,使其成为包含index.php和result.php文件的路径。
"pathMappings": {
"/app": "/home/element/php/tuto"
}
- 1 回答
- 0 关注
- 286 浏览
添加回答
举报
0/150
提交
取消