我想在我的应用中使用官方node
泊坞窗图片。但是我无法让远程调试器在主机上运行。我正在使用Visual Studio Code连接到远程调试器。
奇怪的是使用非官方图像cusspvz/node
远程调试器正常工作。
当我对容器的docker log
实例运行cusspvz/node
时,我得到以下输出:
Debugger listening on [::]:5858
然而,当我对容器的docker log
实例运行node
时,我得到了:
Debugger listening on 127.0.0.1:5858
这让我相信调试器正在侦听错误的IP地址(应该是通配符而不是localhost?)
我已尝试过内置调试器以及nodemon。遗憾的是,由于无法安装(看起来构建失败了),我无法让node-inspector工作。
这是我的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
我使用这个YML文件使用docker-compose启动容器:
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!
答案 0 :(得分:4)
默认情况下,node.js(以及后面的v8)始终使用127.0.0.1作为调试器。我查看了cusspvz/node
,我无法在任何地方找到它如此暴露调试器。
以前很难更改此配置,但现在您可以将调试选项与显式主机一起使用:
node --debug=[::]:5858 test.js
Debugger listening on [::]:5858