从Docker内部debuggingNode.js应用程序

在debuggingNode.js应用程序时,我期望命令node index.js --inspect=5858使我的index.js文件可以在端口5858上debugging。

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

正如你所看到的,端口5858暴露于主机进行debugging:

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

我已经在Chrome开发工具中指定了localhost:5858127.0.0.1:5858networking端点,但Dev Tools仍然没有自动连接到它,

这似乎是我的Docker设置的一个问题,虽然你可以看到,我已经把端口暴露给主机。 可能是什么问题? 谢谢。

问题是,当你在容器中运行它时,默认情况下只听localhost。 所以你有两个select

使用主机networking

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

确保nodejs监听每个IP

更改

command: node index.js --inspect=5858

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