暴露Docker容器中的节点调试端口无法连接?

时间:2019-08-15 10:30:45

标签: node.js docker debugging docker-compose port

我正在尝试将调试器(chrome)连接到通过docker运行的节点应用程序,但是某些事情并不是很安静,因此我不确定。

应用程序本身(简而言之)正在使用ts-node托管应用程序。我已将此命令更改为:

node --inspect-brk -r ts-node/register ./src/server.ts

,当我运行它时(通过package.json命令npm run watch),我在chrome中得到了一个调试钩子:

enter image description here

因此可以在docker之外使用。然后将此应用容器化,然后使用docker-compose(与其他各种容器一起运行)。

我已经在Dockerfile中公开了端口:

EXPOSE 9229

并且我已将端口映射到docker-compose.yaml中:

ports: 
- 9229:9229
command: 'npm run watch'

(不确定我是否需要同时进行)

运行docker-compose up(在build之后)时,我可以看到检查器正在运行并在正确的端口上侦听:

queries_1           | [nodemon] starting `node --inspect-brk -r ts-node/register ./src/server.ts`
queries_1           | Debugger listening on ws://127.0.0.1:9229/5748f2ad-239b-4ecf-b059-b09828899355
queries_1           | For help, see: https://nodejs.org/en/docs/inspector

我还可以看到docker正在正确映射端口(通过docker ps命令):

"npm run watch"          19 seconds ago      Up 16 seconds       3000/tcp, 127.0.0.1:9229->9229/tcp

但是调试器从不附加chrome。

我在这里想念什么?

0 个答案:

没有答案