使用Visual Studio代码远程debuggingDocker中的NodeJS

我想为我的应用程序使用官方node泊坞窗图像。 但是我不能让远程debugging器在主机上工作。 我正在使用Visual Studio代码连接到远程debugging器。

奇怪的是使用非官方的图像cusspvz/node远程debugging工作正常。

当我运行docker log对容器的cusspvz/node实例时,我得到以下输出:

Debugger listening on [::]:5858

但是,当我运行docker log对容器的node实例我得到:

Debugger listening on 127.0.0.1:5858

这导致我相信debugging器正在监听错误的IP地址(应该是通配符而不是本地主机?)

我已经尝试了内置debugging器以及nodemon。 不幸的是,我无法让节点检查器工作,因为它无法安装(看来,构build失败了)。

这是我的Dockerfile:

 FROM node WORKDIR /scraper EXPOSE 5858 ENTRYPOINT ["/bin/bash", "-c", "if [ -z \"$REMOTE_DEBUGGING\" ]; then node --debug index.js; else node --debug-brk index.js; fi"] COPY . /scraper RUN npm install 

我用docker-compose启动容器,使用这个YML文件:

 version: '2' services: alt.nphotos.imagescraper: container_name: nscraper hostname: nscraper build: context: ./ALT.NPhotos.ImageScraper dockerfile: Dockerfile.debug environment: - REMOTE_DEBUGGING=1 - AMQP_CONNECTIONSTRING=amqp://guest:guest@nqueue ports: - "5858:5858" 

有任何想法吗? – TIA!

默认情况下,node.js(和后面的v8)总是使用127.0.0.1作为debugging器。 我看了cusspvz/node ,我找不到任何地方如何暴露debugging器。

过去很难改变这个configuration,但现在你可以使用显式主机的debugging选项:

 node --debug=[::]:5858 test.js Debugger listening on [::]:5858