Docker-node: Cannot attach debugger to Docker Node 8.9.x

Created on 20 Nov 2017  路  7Comments  路  Source: nodejs/docker-node

We run and debug NodeJS apps at Docker containers (6.12.0) using VSCode or Chrome DevTools (chrome://inspect) without any problems.

Attaching debugger to NodeJS containers based on new LTS version 8.9.x stoped to work (debugger attach timeouts). Both VSCode and Chrome DevTools attach behave the same.

Same behavior is reproducible on both Windows 10 an MacOS (High Siera), latest Docker installation.

Dockerfile looks like this

FROM node:8.9.1-slim
ENV PORT=8080

RUN mkdir /usr/src/app
WORKDIR /usr/src/app
COPY ./ /usr/src/app

RUN npm i

CMD ["node", "--inspect", "bin/www"]

Command used to run container (exposing debugging 9229 and web server 8080 ports)

docker run --rm -p 9229:9229 -p 8080:8080 --name docker_debug docker_debug
Demo app is simple NodeJS express app bootstraped using express-generator tool.

VSCode Launch configuration to attach running Docker app looks like this

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Docker: Attach to Node",
      "type": "node",
      "request": "attach",
      "port": 9229,
      "address": "localhost",
      "localRoot": "${workspaceFolder}",
      "remoteRoot": "/usr/src/app",
      "protocol": "inspector"
    }
  ]
}

As mentioned, debugger attach works without any problems when switching base image to former Node LTS version 6.12.0.

FROM node:6.10.0-slim

I have tested 8.9.0, 8.9.1, slim and alpine base images with same result.

question

Most helpful comment

It works for me if the CMD is --inspect=0.0.0.0 instead of just inspect. Not really sure why

All 7 comments

Is this reproducible with just Node.js v8.9.1 without docker?

@chorrell No, it is only docker / debug in docker container issue.

It works for me if the CMD is --inspect=0.0.0.0 instead of just inspect. Not really sure why

Yes, I confirm, that @SimenB 's solution works for me too. Thank you.
Even though this is solution to the issue, it is different behaviour to the v6.12.0 and it would be nice to know why is it so.

Probably related to https://github.com/nodejs/node/issues/11591#issuecomment-283110138

Closing, as I don't think this is actionable for us. Feel free to keep discussing, though 馃檪

@SimenB This is a pretty time consuming gotcha that I haven't found documented anywhere other than this issue.

Is there any reason why we can't at least put something about this in the README.md?

PR most welcome! :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

polys picture polys  路  3Comments

danbev picture danbev  路  3Comments

austinfrey picture austinfrey  路  3Comments

frankbaele picture frankbaele  路  3Comments

tigrus picture tigrus  路  4Comments