【问题标题】:Setting up node debug running in Docker设置在 Docker 中运行的节点调试
【发布时间】: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


    【解决方案1】:

    我终于明白了。作为白痴,我不知道 Dockerfile 中 ENTRYPOINT 的属性,我让脚本运行默认脚本,而不是运行我想要的 dev。刚刚修复了ENTRYPOINT 并改成了npm run dev,整个世界又是阳光和彩虹。感谢所有没有回复的人。

    【讨论】:

      猜你喜欢
      • 2018-03-12
      • 1970-01-01
      • 2018-09-07
      • 2018-05-12
      • 1970-01-01
      • 2014-10-09
      • 2018-10-16
      • 1970-01-01
      • 2023-01-23
      相关资源
      最近更新 更多