Docker containers run in docker0 network. Docker containers can reach the host by its IP, e.g. 172.17.0.1, but cannot reach any processes that listen on localhost (127.0.0.1) from host's perspective. And because the remote debugger started by this extension is hard-coded to listen on 127.0.0.1, it's not possible for a Perl process in Docker container to connect to the debugger port.
Add new configuration option host in launch.json where we're allowed to specify the host for the remote debugger to listen on, e.g. 172.17.0.5 or 0.0.0.0.
After replacing localhost in the code with 0.0.0.0, the process inside Docker container successfully connected to the remote debugger.
Platform: linux
Waiting for remote debugger to connect on port "9000"
Remote debugger at "172.24.0.4:46478" connected at port 9000.
Loading DB routines from perl5db.pl version 1.49
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
Docker containers run in
docker0
network. Docker containers can reach the host by its IP, e.g.172.17.0.1
, but cannot reach any processes that listen onlocalhost
(127.0.0.1
) from host's perspective. And because the remote debugger started by this extension is hard-coded to listen on 127.0.0.1, it's not possible for a Perl process in Docker container to connect to the debugger port.See: https://github.com/raix/vscode-perl-debug/blob/95c89557811b47e7ac64abed0e9661bfdcfcf405/src/attachable.ts#L85
Feature requests:
host
inlaunch.json
where we're allowed to specify the host for the remote debugger to listen on, e.g.172.17.0.5
or0.0.0.0
.Example:
My experience:
After replacing
localhost
in the code with0.0.0.0
, the process inside Docker container successfully connected to the remote debugger.