docker中的节点检查器不加载源

时间:2016-02-22 15:10:36

标签: node.js debugging docker node-inspector

我有两个不同图像的泊坞容器。这是" docker ps"的部分输出。命令:

new TestTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

第一个容器正在运行带有调试选项的服务器应用程序:

$user: docker ps
CONTAINER ID    IMAGE          PORTS
9c8ff81215d4    node:slim      0.0.0.0:5858->5858/tcp, 0.0.0.0:10101->10101/tcp
d85a0de91432    node-debug     0.0.0.0:8080->8080/tcp

使用调试器侦听端口5858,使用server.js app侦听端口10101。

第二个容器正在运行node-inspector

$user: node --debug server.js
Debugger listening on port 5858
...

默认情况下,在端口5858上连接到调试器,并在端口8080上侦听Chrome中的web-inspector。

问题是我访问时http://127.0.0.1:8080/?port=5858我看到检查员没有加载来源。

在Chrome控制台中看到此错误:

$user: node-inspector
Node Inspector v0.12.6
Visit http://127.0.0.1:8080/?port=5858

enter image description here

1 个答案:

答案 0 :(得分:0)

此处的问题是节点检查程序正在尝试连接到localhost / 127.0.0.1,即本地连接到该容器,而不是本地主机。在桥接网络(默认)中运行时,每个容器都在其自己的IP上。

您可以使用以下任一选项快速解决此问题:

  1. 为两个容器使用主机网络
    • 在这种情况下,不再需要您配置的端口转发
  2. 仅为节点检查器容器使用主机网络
    • 在这种情况下,您仍需要将端口5858映射到主机,但不再需要节点检查器上的端口8080