【问题标题】:Remote debug Node 9 in DockerDocker 中的远程调试节点 9
【发布时间】:2018-05-12 02:27:06
【问题描述】:

我正在尝试在 docker 中远程调试 nodejs 9。

> testnodedockerproj@0.0.0 debug /home/deb
> node --inspect=9229 ./bin/www
Debugger listening on ws://127.0.0.1:9229/75db828f-4b4b-491c-99d1-0eb60a82e45c
For help see https://nodejs.org/en/docs/inspector

http://localhost:3100/ 回复

GET /robots.txt 404 1752.471 ms - 905
GET / 304 1838.729 ms - -
GET /stylesheets/style.css 304 114.501 ms - -

但我无法连接到 ws://127.0.0.1:9229/75db828f-4b4b-491c-99d1-0eb60a82e45c。

docker compose 文件有这个端口配置:

ports:
    - "3100:3000"
    - "9339:9229"

我可以从 docker 容器内连接到节点调试 url。但我无法从我的主机系统访问它。 预期的端点应该是 ws://127.0.0.1:9339/75db828f-4b4b-491c-99d1-0eb60a82e45c 并且无法访问。

是否有任何特定的 docker 配置可以连接到 Web 套接字?

如何到达此节点调试端点?

@更新

我已成功连接到调试端点。

节点调试命令应该是:

node --inspect=[::]:9229 ./bin/www

通过这种方式我可以连接到端口 9339 并附加一个调试器。

【问题讨论】:

  • 澄清一下:您正在尝试远程并在您的主机上使用ws://127.0.0.1:9339这个符号?
  • 是的,Node 位于我桌面上的 Docker 中。所以,我希望 localhost 应该这样做。
  • 所以它不是远程的,它只是在你的 docker 容器中。你肯定需要使用这个端口9339,并且应该能够在这里连接ws://127.0.0.1:9339
  • 是的,我应该能够,但我不能。 127.0.0.1:3100 可访问,但 ws://127.0.0.1:9339 不可访问。
  • 你得到了什么确切的错误?

标签: node.js docker remote-debugging


【解决方案1】:

节点调试命令应该是:

node --inspect=[::]:9229 ./bin/www

【讨论】:

    【解决方案2】:

    所以我是如何使它工作的:

    1. 你有一个容器,假设这个 IP:172.1.1.10
    2. 打开 Chrome 开发工具:chrome://inspect/#devices
    3. 选择配置并添加新地址和端口:172.1.1.10:9229
    4. 启动容器
    5. 运行以下命令(我有 Ubuntu 16.04): docker-compose exec <conainer name> node --inspect=172.1.1.10:9229 <path-to-task>
    6. 刷新您的 Chrome 页面,如果您正确设置所有内容,您将在 Remote Target 标签下看到您的容器。

    【讨论】:

    • 这有助于找出解决方案。
    猜你喜欢
    • 2016-07-25
    • 2018-04-20
    • 2018-03-21
    • 2023-03-14
    • 1970-01-01
    • 2015-07-16
    • 2018-01-13
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多