【发布时间】:2017-07-11 14:26:26
【问题描述】:
我想为我的应用使用官方的 node docker 镜像。但是我无法让远程调试器在主机上工作。我正在使用 Visual Studio Code 连接到远程调试器。
奇怪的是使用非官方镜像cusspvz/node远程调试器正常工作。
当我针对容器的 cusspvz/node 实例运行 docker log 时,我得到以下输出:
Debugger listening on [::]:5858
但是,当我针对容器的 node 实例运行 docker log 时,我得到:
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
我正在使用 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!
【问题讨论】:
-
对您问题的完整附注:您应该在您的
FROM指令中指定版本号标签。FROM node:6.9.5例如...否则,每次构建映像时,您都会得到最新/最新的节点版本。一开始听起来不错,直到不必要的升级破坏了您的代码 -
谢谢@DerickBailey,我会记住的
标签: node.js debugging docker visual-studio-code