node.js - 远程调试docker容器内运行进程

标签 node.js intellij-idea docker remote-debugging docker-compose

我正在 Docker 容器内运行 node.js 应用程序。我需要使用 Intellij Ultimate 15 调试此应用程序。

demoapp:
  build: .
  command: 'bash -c "npm install && npm run debug"'
  ports:
    - "8989:8989"
  environment:
      VIRTUAL_HOST: 'demoapp.docker'
      VIRTUAL_PORT: 8989

来自 package.jsondebug 脚本

"debug": "(node-inspector --web-port=8989  app.js &) && node --debug app.js"

以及IDE中的配置

enter image description here

IDE 响应框架不可用。估计是连接不上

我做错了什么吗?

此外,我可以使用 Chrome 进行调试。如果我访问 demoapp.docker:8989 它会连接并且我可以开始调试。

最佳答案

您应该通过 IntelliJ 调试器连接到调试端口,而不是 Web 端口。因此,您应该在 Node 运行时指定它(使用 --debug 选项)并将其公开给 docker 主机,之后您就可以连接到它。

JetBrains 文档中的更多信息:https://www.jetbrains.com/idea/help/running-and-debugging-node-js.html#remote_debugging

关于node.js - 远程调试docker容器内运行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567804/

相关文章:

node.js - 在cmd中安装ionic时出错

node.js - 如何根据mongodb中的日期对记录进行分组

java - 握手失败 - 在 Intellij 中调试 Solr 时连接过早关闭错误

java - 如何在Java项目中为类文件配置模板

Docker:使用 docker-compose 复制文件和目录

linux - docker : 'go.mod: permission denied' on go commands

javascript - ^ Node 脚本参数中的字符

node.js - 在 Node.js 中事务性地写入文件

module - 如何在 IntelliJ 中设置具有相同层次模块的多模块项目?

docker - VirtualBox和Docker for Windows之间的堆栈差异