簡體   English   中英

使用Visual Studio代碼在Docker中遠程調試NodeJS

[英]Remote debugging NodeJS in Docker with Visual Studio Code

我想為我的應用程序使用官方node docker鏡像。 但是我無法讓遠程調試器在主機上運行。 我正在使用Visual Studio Code連接到遠程調試器。

奇怪的是使用非官方圖像cusspvz/node遠程調試器正常工作。

當我對容器的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!

默認情況下,node.js(以及后面的v8)始終使用127.0.0.1作為調試器。 我看過cusspvz/node ,我無法在任何地方找到它如何暴露調試器。

以前很難更改此配置,但現在您可以將調試選項與顯式主機一起使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM