Javascript 从Docker内部调试Node.js应用程序
调试Node.js应用程序时,我希望命令Javascript 从Docker内部调试Node.js应用程序,javascript,node.js,docker,docker-compose,Javascript,Node.js,Docker,Docker Compose,调试Node.js应用程序时,我希望命令Node index.js--inspect=5858使我的index.js文件可以在端口5858上调试 当我在Docker之外的主机上运行应用程序时,我能够在Chrome开发工具中调试应用程序。我在Docker和Chrome的内部也做了同样的操作,因为开发工具无法访问端口5858上的调试器 如您所见,端口5858暴露给主机进行调试: version: '2' services: server: build: . command: no
Node index.js--inspect=5858
使我的index.js文件可以在端口5858上调试
当我在Docker之外的主机上运行应用程序时,我能够在Chrome开发工具中调试应用程序。我在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开发工具中指定了localhost:5858
和127.0.0.1:5858
网络端点,但开发工具仍然没有按照建议自动连接到它
这似乎是我的Docker设置的一个问题,但是正如您所看到的,我已经将端口暴露给了主机。可能是什么问题?谢谢。问题是,当您在容器中运行它时,默认情况下它只侦听localhost。所以你有两个选择 使用主机网络 将
network\u mode:host
添加到您的服务并删除端口映射。这不是一件理想的事情
确保nodejs监听每个IP
改变
命令:node index.js--inspect=5858
到
command:node--inspect=0.0.0.0:5858 index.js
问题是,当您在容器内运行它时,默认情况下它只侦听localhost。所以你有两个选择
使用主机网络
将network\u mode:host
添加到您的服务并删除端口映射。这不是一件理想的事情
确保nodejs监听每个IP
改变
命令:node index.js--inspect=5858
到
command:node--inspect=0.0.0.0:5858 index.js
您是否尝试进入容器的外壳并查看localhost:5858是否已启动并运行?如果没有,请尝试docker exec-it container\u id sh
@serey我检查了它是否在docker中使用netstat-tulpn运行,端口5858使用程序名45/节点运行running@PavSidhu你在Dockerfile出口5858港口了吗?@CauêAlves我只是试了一下,运气不好。在Kitematic中,它显示了端口5858和8000,因此它们似乎已正确暴露。您是否尝试进入容器外壳,查看localhost:5858是否已启动并运行?如果没有,请尝试docker exec-it container\u id sh
@serey我检查了它是否在docker中使用netstat-tulpn运行,端口5858使用程序名45/节点运行running@PavSidhu你在Dockerfile出口5858港口了吗?@CauêAlves我只是试了一下,运气不好。在Kitematic中,它显示端口5858和8000,因此它们似乎已正确暴露。