【问题标题】:Unable to debug remote docker node.js app from WebStorm无法从 WebStorm 调试远程 docker node.js 应用程序
【发布时间】:2019-06-29 05:13:22
【问题描述】:

我正在尝试从 WebStorm 中将远程调试器附加到在 docker 中运行的 node.js 应用程序,但我无法做到。我可以从 IDE 成功运行 docker app 但无法调试它。

我正在按照本指南设置远程解释器: https://www.jetbrains.com/help/webstorm/running-and-debugging-node-js.html#node_debugging_overview

我的 docker-compose.yaml 看起来像这样:

ports:
  - 8080:8080
  - 9229:9229

command: [ "npm", "run","debug" ]

package.json 的调试脚本定义如下:

"debug":"node --inspect-brk"

如果有人设置了这个,你能建议我做错了什么吗?

【问题讨论】:

    标签: node.js docker intellij-idea webstorm remote-debugging


    【解决方案1】:

    你需要绑定到容器中的所有接口

    --inspect=0.0.0.0
    

    --inspect-brk=0.0.0.0
    

    Command-line options

    但是这在生产环境中是危险的 Exposing the debug port publicly is unsafe

    【讨论】:

    • 感谢您的所有回复:这就是我的调试脚本现在的样子:"develop":"NODE_ENV=development node -- --inspect=0.0.0.0:8090 ./baseFille. js”另一个奇怪的事情是,当我向端口 8090(假设是我的调试器端口)发送 curl 请求时,我没有得到任何响应。这可能是我无法调试的问题吗?
    【解决方案2】:

    目前不支持使用 Docker Compose 作为 Node.js 远程解释器,请参阅 WEB-23404。 所以你需要使用 Attach to Node.js/Chrome 运行配置来附加到你在 docker 中运行的 node.js 应用程序:

    但是,由于节点默认绑定到 localhost,因此无法从外部访问,因此您需要将 npm 脚本更改为 "debug":"node --inspect-brk=0.0.0.0:9229",正如 @ponury-kostek 中提到的那样 回答

    【讨论】:

    • 所以我尝试使用它,但由于某种原因它突然分解并出来了。给出一条错误消息“驱动程序在端点上编程外部连接失败”。
    • 看起来与调试无关。请参阅github.com/docker/compose/issues/3277 获取一些提示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2016-07-27
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多