VSCode + Docker 컨테이너의 PHP를 디버깅 할 때 host.docker.internal에 연결할 수없는 문제 해결

3481 단어 PHPxdebugWSL2VSCode

개요



VSCode에서 Docker Desktop (Windows)의 컨테이너를 디버깅 할 때 올바르게 설정하고 싶을 때 다음과 같은 오류가 발생하여 성공적으로 연결할 수없는 문제가 발생했습니다.
이 건에 대해 대처할 수 있었기 때문에 메모해 둡니다.
Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: host.docker.internal:9003 (through xdebug.client_host/xdebug.client_port) :-(

TL; DR



VSCode의 launch.json에 다음 hostname 지정이 필요했습니다.

    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "hostname": "0.0.0.0",  // この設定が必要
            "port": 9003,
            "pathMappings": {
                "/app": "${workspaceRoot}"
            },
            "log": true
        }
    ]

환경



이번에는 다음과 같은 구성으로 Remote Container를 사용하지 않고 WSL2의 VSCode Server와 Docker Desktop의 컨테이너간에
디버깅을 시도하는 구성이었습니다.
(별로 흔하지 않다 ...?)
VSCode Server에서 보면 host.docker.internal(자신의 환경에서는 192.168.65.2)로부터의 접속을 허가할 필요가 있기 때문에, "0.0.0.0"의 지정이 필요했을까 생각하고 있습니다만, 이 부분 잠깐 자신감이 없습니다.



xdebug.ini (XDebug3)
zend_extension=xdebug

[xdebug]
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_host=host.docker.internal
xdebug.log_level = 0 ;コネクション失敗のログを取りたい時は1、不要なら0などにする。https://xdebug.org/docs/all_settings#log_level

좋은 웹페이지 즐겨찾기