Node js docker远程调试chrome

aiazj4mn  于 2023-05-06  发布在  Docker
关注(0)|答案(2)|浏览(141)

我在Docker中运行node js服务器,我希望能够将我主机上的chrome开发工具连接到docker上的node js以进行调试。
这似乎是可能的,因为我在这里跟随帖子:Why Chrome can't inspect nodejs code in Docker container?
实际上,通过将主机上的端口9229:9229和docker内的端口相互绑定,并在docker中运行命令,当我启动node js时

node --inspect-brk=[0.0.0.0] app

我能够将chrome开发工具连接到node js,但是我的断点都不起作用-我只能在chrome中看到控制台日志。
如何让断点工作?我错过了什么?

qxsslcnc

qxsslcnc1#

为了回答我自己的问题,我从来没有让上面的工作,但我确实设法使用VS代码在Docker容器中进行调试。
我在这里使用了另一种解决方案:https://keylocation.sg/our-tech/debugging-nodejs-in-docker-using-node-inspector
看来有人也找到了解决办法:Why Chrome can't inspect nodejs code in Docker container?

rqcrx0a6

rqcrx0a62#

我在Windows上用docker compose使用WSL 2:
Dockerfile

FROM node:18

...etc

EXPOSE 9229 

ENTRYPOINT ["node"]
CMD ["service.js"]

docker-compose.yml

...
  <service>:
    build:
      context: ./src/service
    ports:
      - 9229:9229

我运行docker compose up,然后运行docker compose stop <service>来停止正在调试的服务。
然后,我使用调试选项和端口Map再次启动服务:

docker compose run -p 9229:9229 <service> --inspect=0.0.0.0 service.js

然后,我可以在Chrome中的chrome://inspect/#devices中看到该服务,并选择inspect

相关问题