加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

node.js – 如何将VS代码附加到在docker容器中运行的节点进程

发布时间:2020-12-16 03:40:25 所属栏目:安全 来源:网络整理
导读:我正在尝试将Visual Studio代码调试器附加到在Docker容器内运行的node.js应用程序. 我启动应用程序,如: node --debug-brk app.js 我在docker-compose.yml中公开调试器端口: app: build: . working_dir: /code volumes: - .:/code command: npm run debug p

我正在尝试将Visual Studio代码调试器附加到在Docker容器内运行的node.js应用程序.

我启动应用程序,如:

node --debug-brk app.js

我在docker-compose.yml中公开调试器端口:

app:
  build: .
  working_dir: /code
  volumes:
    - .:/code
  command: npm run debug
  ports:
    - "3004:3000"
    - "5858:5858"

我的launch.json看起来像:

{
    "version": "0.1.0","configurations": [
        {
            "name": "Attach","type": "node","address": "localhost","port": 5858
        }
    ]
}

现在,当我启动应用程序并连接调试器时,这将正确连接(我可以看到调试器UI中已经闪烁的值),但它会停止,告诉我以下内容:

Error opening 'app.js' (File not found: /code/app.js).

这是因为docker不会在root中挂载应用程序而是在/ code中(请参阅docker-compose.yml中的卷),并且VS代码会被突然的偏移混淆.

当我在容器外运行应用程序(即本地,没有偏移)时,它按预期工作,我可以按预期使用调试器.

启动配置似乎有一个cwd选项,但我不确定这是否会对我的情况产生任何影响.

我可以修复此路径偏移吗?我在这里错过了什么吗?

最佳答案
我认为您的调试器被欺骗了,因为您的docker中的应用程序路径是/ code,而在您的计算机上则是不同的.

也许像/ home / m90 / code这样的东西.

因此,当您的调试器试图查看本地计算机上的代码时.它查看/仅存在于docker内部的代码.这条路径在码头工人之外毫无意义.

如果您可以告诉调试器在您的计算机上的正确位置(再次在docker容器之外)查找代码,那将修复它.

另一种方法是在docker内外为代码提供相同的路径.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读