2017-02-21 26 views
5

Uygulamam için resmi node docker resmini kullanmak istiyorum. Ancak, uzak hata ayıklayıcısını ana makine üzerinde çalışmasını sağlayamıyorum. Uzaktan hata ayıklayıcısına bağlanmak için Visual Studio kodu kullanıyorum.Visual Studio Code ile Docker'da NodeJS'deki uzaktan hata ayıklama

Tuhaf bir şey, resmi olmayan bir resmi cusspvz/node kullanıyor, uzak hata ayıklayıcı düzgün çalışıyor. I Aşağıdaki çıktıyı almak kabın cusspvz/node örneği karşı docker log çalıştırın

: ı kabın node örneği karşı docker log çalıştırmak Ancak

Debugger listening on [::]:5858

Elde:

Debugger listening on 127.0.0.1:5858

Hata ayıklayıcının yanlış IP üzerinde dinlediğine inanmamı sağlayan bir ddress (localhost yerine joker olmalı?)

Yerleşik hata ayıklayıcıyı ve aynı zamanda nodemon'u denedim. Maalesef, yükleme başarısız olduğu için düğüm denetçisini çalıştıramadım (yapı zaten başarısız oluyor gibi görünüyor).

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" 

Herhangi fikirleri:

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 

Bu YML dosyasını kullanarak, liman işçisi-oluşturmadeneyimine ile konteyner başlıyorum: Burada

benim Dockerfile nedir? - TIA!

+0

tam yan not soru: Eğer bir sürüm numarası etiketi belirtmelidir senin ' FROM 'talimatı. Örneğin, node: 6.9.5'… örneğin, görüntüyü her oluşturduğunuzda, en yeni/en yeni düğüm sürümü ile sonuçlanacaksınız. Bu istenmeyen bir yükseltme kodunuzu kırıncaya kadar ilk başta iyi geliyor. –

+0

Teşekkürler @DerickBailey Bunu aklınızda bulundurun: –

+0

Bunu denediniz mi: http://stackoverflow.com/questions/12440169/how-do-you-debug- a-node-js-sunucu-ile-chrome-webkit-uzaktan-hata ayıklama –

cevap

4

Varsayılan olarak node.js (ve arkasında v8) hata ayıklayıcı için daima 127.0.0.1 kullanın. cusspvz/node'a baktım ve hata ayıklayıcısını nasıl ortaya çıkardığını bulamadım.

Bu yapılandırmasını değiştirmek zor olarak kullanılan ama şimdi sadece açık bir ana bilgisayarla ayıklama seçeneğini kullanabilirsiniz: Size

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

Hey, işe yaradı! Ben çok benzer bir şey denedim - debug-brk ile ve ben bu işe yaramadı bu yüzden bu yöntemin de işe yaramadı. Gördüğüm şey bu, herhangi bir fikir mi? 'Hata ayıklayıcısında dinleme [::]: 5858 module.js: 563 Debug.setBreakPoint (compiledWrapper, 0, 0); ^ yasadışı erişim ' Ancak, beni kurtardığınız gibi - ben ödülünü ödüllendireceğim :) Çok teşekkürler. –

+0

@AdrianLucaThomas, debug-brk için aynı hatayı aldım. [::] 'yerine '0.0.0.0' kullanıldığında bile. Sizin için önemliyse, bağlantı noktasını yeniden yönlendirmek için hala 'socat' kullanabilirsiniz. Daha önce kullandığım bir geçici çözüm. –

+0

@AdrianLucaThomas, ikisini de birleştirirseniz işe yarar mı? 'node --debug = [::]: 5858 - debug-brk test.js'?İlk satırda bu şekilde kırılabilirim. –

İlgili konular