无法远程调试Docker容器内运行的Node.js进程求助
容器内Node.js远程调试失败问题
我正尝试调试Docker容器内的Node.js后端服务器,但始终无法远程调试容器内的Node进程。已使用netstat -an验证主机和容器的9229端口均已开放,且已将主机9229端口映射至容器9229端口。试过用nodemon --inspect --trace-warnings --unhandled-rejections=strict server.js启动Node,也尝试过node --inspect server.js,均未成功。
试过多种VSCode launch.json配置,全部无效:
- 第一种是默认配置,未尝试附加到运行中的Node进程;
- 第二种失败,报错
ENOENT: no such file or directory, open '~/Desktop/fiction-forge/package.json',不清楚Docker扩展为何要在~/Desktop/fiction-forge路径下查找package.json; - 第三种看似尝试连接,VSCode显示加载动画,但最终失败。也试过Chrome远程调试,同样无效。
当Node进程在主机的9229端口运行时,我可以通过Chrome远程调试正常调试。令我不解的是,明明端口已开放且映射正确,容器内运行时却出现差异。
可通过以下命令构建镜像并运行容器:
docker build -t fiction-forge . && docker run -p 3000:3000 -p 5000:5000 -p 9229:9229 fiction-forge
再执行以下命令启动服务器:
docker exec <container-name> npm run dev --prefix server
内容的提问来源于stack exchange,提问作者Bunny
相关产品推荐
相关产品推荐

