从 Docker 内部调试 Node.js 应用程序



调试 Node.js 应用程序时,我希望命令node index.js --inspect=5858使我的索引.js文件在端口 5858 上可调试。

当我在 Docker 之外的主机上运行应用程序时,我可以在 Chrome Dev Tools 中调试应用程序。我在 Docker 内部做了同样的事情,Chrome 开发工具无法访问端口 5858 上的调试器。

如您所见,端口 5858 暴露给主机进行调试:

version: '2'
services:
server:
build: .
command: node index.js --inspect=5858
volumes:
- .:/app
ports:
- "8000:8000"
- "5858:5858"
environment:
- NODE_ENV = "development"

我已经在Chrome Dev Tools中指定了localhost:5858127.0.0.1:5858网络端点,尽管Dev Tools仍然没有像它建议的那样自动连接到它。

这似乎是我的 Docker 设置的一个问题,尽管如您所见,我已经将端口暴露给主机。可能是什么问题?谢谢。

问题是,当您在容器内运行它时,默认情况下它只侦听本地主机。所以你有两个选择

使用主机网络

network_mode: host添加到服务并删除端口映射。不是一件理想的事情

确保 nodejs 侦听每个 IP

改变

command: node index.js --inspect=5858

command: node --inspect=0.0.0.0:5858 index.js

最新更新