关于inspect
的前身,似乎有一个similar question,我想使用inspect
。
我创建了一个基本的docker-compose堆栈,从中运行nodejs应用程序。我想听调试器会话并在本地WebStorm中调试我的JavaScript代码。
我通过以下方式进入容器
docker exec -it my_container bash
然后使用通过inspect
运行的调试器调用我的nodejs脚本:
node --inspect ./cli.js start mytask
Debugger listening on ws://127.0.0.1:9229/81006264-163c-40d7-bd75-64c5e4fca618
For help see https://nodejs.org/en/docs/inspector
链接的帮助对我没有帮助,因为它假定我想使用inspect
进行本地运行:
JetBrains WebStorm 2017.1+和其他JetBrains IDE创建新的 Node.js调试配置,然后单击“调试”。 --inspect将由 Node.js 7+的默认设置。禁用取消选中 IDE注册表中的js.debugger.node.use.inspect。
我想从主机WebStorm附加到docker容器内的运行。
因此,当我运行脚本时,它永远不会碰到任何断点而完成。
我想我必须听调试器,但是我不知道怎么做。
我希望本地WebStorm连接到nodejs调试器。我希望能够在WebStorm中进行调试,就像通过WebStorm本身运行nodejs脚本一样。
我尝试深入研究docs,但不确定如何遵循指南。
我在docker-compose.yml中将默认调试端口9229
暴露给了本地计算机:
version: "3"
services:
my_container:
build: .
command: "bash"
hostname: my_container
tty: true
environment:
TERM: xterm
ports:
- "9229:9229"
我不知道如何在WebStorm中收听nodejs调试器。
答案 0 :(得分:2)
您必须使用node --inspect-brk=0.0.0.0:9229
启动应用程序(由于默认情况下Node.js仅绑定到本地主机,因此必须使用0.0.0.0
),然后使用Attach to Node.js/Chrome运行配置来附加调试器。 端口应设置为9229
答案 1 :(得分:0)
这是一种解决方法,因为我仍然非常想使用WebStorm的调试器,这就是为什么这不是我的解决方案,而是至少提供了一种调试方法的原因:
对于chrome的开发工具,您可以使用:
node --inspect-brk=0.0.0.0:9229 ./cli.js start mytask
它将显示在:
chrome://inspect/#devices
您可以单击检查并通过脚本进行调试。
--inspect-brk
将在第一行中断,我必须使用ip 0.0.0.0
作为开发工具才能使用它。