我正在尝试将调试器(chrome)连接到通过docker运行的节点应用程序,但是某些事情并不是很安静,因此我不确定。
应用程序本身(简而言之)正在使用ts-node托管应用程序。我已将此命令更改为:
node --inspect-brk -r ts-node/register ./src/server.ts
,当我运行它时(通过package.json命令npm run watch
),我在chrome中得到了一个调试钩子:
因此可以在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。
我在这里想念什么?