Reputation: 144
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
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