【发布时间】:2017-08-09 16:29:29
【问题描述】:
在调试 Node.js 应用程序时,我希望命令 node index.js --inspect=5858 可以在端口 5858 上调试我的 index.js 文件。
当我在 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:5858 是否启动并运行?如果没有,请尝试
docker exec -it container_id sh -
@serey 我用
netstat -tulpn检查了它是否在Docker中运行,并且端口5858正在运行,程序名称为45/node所以它正在运行 -
@PavSidhu 您是否在 Dockerfile 中导出了 5858 端口?
-
@CauêAlves 我刚刚尝试过,但没有运气。在 Kitematic 中,它显示端口 5858 和 8000,因此它们似乎已正确暴露。
标签: javascript node.js docker docker-compose