2016-05-06 25 views
5

Sto costruendo un'applicazione nodejs che è in esecuzione nel contenitore finestra mobile ...nodeJS ECONNREFUSED con espressa all'interno del contenitore finestra mobile

Questo è il comando che ho usato per eseguire il contenitore ...

sudo docker run -it --rm -p 3000:6001 --name xxx-running xxx 

Esegui sopra la linea di comando, ha ottenuto seguente output ..

Running on Locally 
    AppEnv { 
     isLocal: true, 
     app: {}, 
     services: {}, 
     name: 'xxx', 
     port: 6001, 
     bind: '0.0.0.0', 
     urls: [ 'http://localhost:6001' ], 
     url: 'http://localhost:6001' } 
    App started on port http://localhost:6001 

Dal momento che l'applicazione chiamerà terze parti api, quindi è necessario il modulo di richiesta. Ogni volta che quando una richiesta viene richiamato, ho ottenuto l'errore seguente ...

{ [Error: connect ECONNREFUSED 192.155.253.83:443] 
code: 'ECONNREFUSED', 
errno: 'ECONNREFUSED', 
syscall: 'connect', 
address: '192.155.253.83', 
port: 443 } 

so forse è a causa della voce localhost, ma come posso cambiare questo?

risposta

1

Stai ospitando la tua API di terze parti all'interno di un contenitore finestra mobile su localhost? In caso affermativo, è necessario accertarsi che il contenitore docker API di terze parti condivida la stessa rete. Vedi https://docs.docker.com/engine/userguide/networking/. Ho avuto lo stesso problema nel tentativo di accedere a endpoint di riposo che presumo sarà risolto con l'host locale poiché è in esecuzione sulla mia finestra mobile all'interno del contenitore. Ecco una sequenza di passi che mi hanno aiutato problema risolto:

  1. Execute docker network ls per vedere quanti piloti ponte che avete. Nel mio caso ho avuto 2 e contenitori in cui utilizzando quelli diversi
  2. Se si dispone di più driver a ponte, assicurarsi che si iniziare i contenitori che verranno a parlare tra loro utilizzando stessa rete ponte docker run -d -t --network networkname --name containername
  3. Run docker network inspect networkname. Vedrete i dettagli della rete con l'elenco dei contenitori. Ad ogni container sarà associato IPv4Address. Utilizzare il valore di questi indirizzi per comunicare invece di localhost o 127.0.0.1
Problemi correlati