[英]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.