Skip to content
This repository was archived by the owner on Jan 13, 2021. It is now read-only.
This repository was 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

@Nowaker

Description

@Nowaker

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions