【发布时间】:2018-11-02 08:52:29
【问题描述】:
所以我花了最后两天(和晚上)徒劳地尝试在 VS Code 中设置调试器来调试我在 Docker 中运行的节点应用程序。在这一点上,我有 3 天的 Docker 经验,在具有非常出色的反应能力的人将其标记为重复之前,我已经阅读了谷歌搜索结果第一页中的每一篇博文/答案(这是真的!)我不知道我还能去哪里。我泪流满面。请看一下并指出我可能犯的愚蠢错误。以下是我的相关设置:
package.json:
"scripts": {
"start": "node .",
"lint": "eslint **/*.js",
"dev": "nodemon --inspect-brk=0.0.0.0:9229 --watch src --exec node -r dotenv/config ."
},
(--inspect-brk=0.0.0.0:9229 是我根据this 问题报告的建议添加的)
Dockerfile:
FROM node:8-alpine
ENV NODE_ENV production
RUN apk --update add git ffmpeg imagemagick ghostscript poppler-utils libpng-dev
WORKDIR /app
ADD . /app
RUN npm i
ENTRYPOINT node .
这是启动配置
{
"type": "node",
"request": "attach",
"name": "Docker: Attach to Node",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app",
"protocol": "inspector"
},
这里是 docker-compose 文件:
version: "3"
services:
lil-upload:
environment: #redacted
image: 'pdffix'
ports:
- '8080:64544'
- '9229:9229'
restart: always
据我了解,我需要从 docker 公开调试器将附加的端口(在本例中为 9229),并且当我启动调试器时,它将附加到那里。但每次我不断收到此错误Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: read ECONNRESET)
如果将我的launch.json 中的配置更改为launch 而不是attach,这样我就可以在调试模式下直接启动应用程序,我得到Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: connect ECONNREFUSED 127.0.0.1:9229)
我真的不知道我还需要做什么才能让这该死的东西起作用。
【问题讨论】:
标签: node.js docker debugging visual-studio-code