Skip to content
This repository has been archived by the owner on Jan 13, 2021. It is now read-only.

Enable remote debugging for Docker by providing a new configuration option: host #152

Open
Nowaker opened this issue Jun 20, 2020 · 0 comments

Comments

@Nowaker
Copy link

Nowaker commented Jun 20, 2020

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.

See:

server.listen(0, 'localhost', () => {

Feature requests:

  1. 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.

Example:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "perl",
      "request": "launch",
      "name": "Perl-Debug",
      "console": "remote",
      "port": 9000,
      "host": "172.17.0.5",
      "program": "${workspaceFolder}/${relativeFile}",
      "stopOnEntry": false,
      "reloadModules": false
    }
  ]
}

My experience:

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.
@Nowaker Nowaker changed the title Enable remote debugging for Docker by providing a new configuration option: host OR interface Enable remote debugging for Docker by providing a new configuration option: host Jun 20, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant