Tomas
Tomas

Reputation: 144

Cannot attach debugger to Docker Node 8.9.x

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-slim, 8.9.1, 8.9.1-slim and 8.9.1-alpine base images with same result.

Upvotes: 1

Views: 684

Answers (1)

Tomas
Tomas

Reputation: 144

Ok, solution to this problem is related to Node v7.5.0, just add 0.0.0.0 to the --inspect parameter like this

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

For more information check this docker-node GitHub Issue

Upvotes: 0

Related Questions