2017-02-21 15 views
5

私のアプリケーションには公式のnodeドッカーイメージを使用したいと思います。しかし、リモートデバッガをホストマシン上で動作させることはできません。 Visual Studioコードを使用してリモートデバッガに接続しています。リモートデバッグVisual Studioを使用したDockerのNodeJSコード

奇妙なことに、非公式の画像cusspvz/nodeを使用してリモートデバッガが正しく動作しています。

私は次の出力を得るのコンテナのcusspvz/nodeインスタンスに対してdocker logを実行します。しかし、私は私が手コンテナのnodeインスタンスに対してdocker logを実行したときに

Debugger listening on [::]:5858

を:

Debugger listening on 127.0.0.1:5858

私は、デバッガが間違ったIPアドレスを聞いていると思いますddress(localhostではなくワイルドカードですか?)

私は、組み込みのデバッガとnodemonを試しました。残念ながら、ノードインスペクタはインストールに失敗しても機能しませんでした(ビルドには失敗しているようです)。ここで

は私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ファイル使用して、ドッキングウィンドウ・コンでコンテナを始めている:

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:[email protected] 
    ports: 
    - "5858:5858" 

任意のアイデア? - TIA!

+0

完全なサイドノートをあなたに質問:あなたは 'とバージョン番号タグを指定する必要がありますFROM命令である。 'FROM node:6.9.5'などです。そうしないと、イメージをビルドするたびに最新の/最新のノードバージョンになります。望ましくないアップグレードがあなたのコードを壊すまで、最初はうまくいくと思います。 –

+0

ありがとう@DerickBailey私はこれを心に留めておきます –

+0

これを試してみましたか:http://stackoverflow.com/questions/12440169/how-do-you-debug- a-node-js-server-with-chrome-webkit-as-the-remote-debug –

答えて

4

デフォルトでは、node.js(およびその後ろのv8)はデバッガで常に127.0.0.1を使用します。私はcusspvz/nodeを見てきましたが、私はそれがどのようにデバッガをそのように公開しているかはわかりません。

それは、この設定を変更することは困難であることが使用されるが、今あなただけの明示的なホストとデバッグオプションを使用することができます。

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

ちょっと、うまくいきました!私は実際には非常によく似たものを試しました - デバッグbrkと私はそれが動作しませんでしたので、私はこの方法も動作しないと仮定した理由です。これは私が見たものです、どんなアイデアですか? '[::]でリッスンしているデバッガ:5858 module.js:563 Debug.setBreakPoint(compiledWrapper、0、0); ^ 違法アクセス ' しかし、あなたが私を救ったように - 私は賞金を授与します:)ありがとうございました。 –

+0

@AdrianLucaThomas、私はdebug-brkと同じエラーがあります。 '[::]'の代わりに '0.0.0.0'を使用する場合でも。それが重要であれば、 'socat'を使ってポートをリダイレクトすることができます。それは私が以前使用した回避策です。 –

+0

@AdrianLucaThomas、両方を組み合わせると効果的ですか? 'node --debug = [::]:5858 --debug-brk test.js'?私はこのようにファーストラインで打ち破ることができます。 –

関連する問題