无法将debugging器附加到Docker Node 8.9.x
我们使用VSCode或Chrome DevTools(chrome:// inspect)在Docker容器(6.12.0)上运行和debuggingNodeJS应用程序,没有任何问题。
将debugging器附加到基于新的LTS版本8.9.x的NodeJS容器停止工作(debugging器附加超时)。 VSCode和Chrome DevTools的附加行为都是一样的。
同样的行为在Windows 10和MacOS(高Siera),最新的Docker安装上都是可重现的。
Dockerfile看起来像这样
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"]
用于运行容器的命令(公开debugging9229和Web服务器8080端口)
docker run --rm -p 9229:9229 -p 8080:8080 --name docker_debug docker_debug
演示应用程序是简单的NodeJS快速应用程序使用快速生成器工具bootstraped。
VSCode启动configuration附加正在运行的Docker应用程序看起来像这样
{ "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" } ] }
如前所述,在将基础镜像切换到之前的Node LTS 6.12.0版本时,debugging器附加工作没有任何问题。
FROM node:6.10.0-slim
我testing了8.9.0-slim,8.9.1,8.9.1-slim和8.9.1-alpine基本图像,结果相同。
好的,这个问题的解决方法与Node v7.5.0相关,只需要像这样在--inspect
参数中加上0.0.0.0
即可
CMD ["node", "--inspect:0.0.0.0", "bin/www"]
有关更多信息,请查看此docker-node GitHub问题
- Geddy没有断点
- 如何使用docker-compose.debug.yml来debugging在docker中运行的节点?
- 如何用babel-jest和节点检查器来debugginges6testing
- 将EventEmitter移到debugging器中的侦听器
- 使用Eclipse作为Node.JS远程debugging器(连接被拒绝)
- 远程debugging来自WebStorm的node.js:远程debugging会话已处于活动状态
- debugging打破与bunyan.createLogger – 节点v5.8发射
- 如何debugging一个NodeJS阻塞的事件循环?
- 在cf中debugging具有PID的应用程序