在Docker容器中远程debugging运行进程

我在一个Docker容器中运行一个node.js应用程序。 我需要用Intellij Ultimate 15debugging这个应用程序。

 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中进行configuration

在这里输入图像说明

IDE响应Frame is not available 。 我想它不能连接。

难道我做错了什么?

而且,我可以使用Chrome进行debugging。 如果我访问demoapp.docker:8989它连接,我可以开始debugging。

您应该通过IntelliJdebugging器连接到debugging端口,而不是连接到Web端口。 所以你应该在节点运行时指定它(带--debug选项),并将它暴露给docker主机,然后你就可以连接到它。

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