2016-02-12 10 views
5

Sto distribuendo alcuni servizi node.js su un sistema aziendale all'interno di contenitori di finestra mobile. Le mie Dockerfiles per questi servizi sono molto semplici, con l'eccezione che sto installando le variabili d'ambiente del proxy:L'installazione di NPM non riesce all'interno del contenitore Docker ma viene eseguita sull'host w/proxy aziendale

FROM node:4.2.3 

ADD . /src 

WORKDIR /src 

ENV http_proxy http://proxy.gc.corp.com:8888/ 
ENV https_proxy http://proxy.gc.corp.com:8888/ 
ENV HTTP_PROXY http://proxy.gc.corp.com:8888/ 
ENV HTTPS_PROXY http://proxy.gc.corp.com:8888/ 


RUN npm install --production 

EXPOSE 3000 

CMD npm start >> /log/eva_web_api 

Quando costruisco la mia immagine da questo file ricevo il seguente errore da NPM:

error on last attempt: Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND proxy.gc.corp.com proxy.gc.corp.com:8888

Tuttavia, quando eseguo l'installazione di NPM sul computer host (che ha Node.js installato e Docker), l'installazione di NPM viene eseguita normalmente e completa senza problemi. Uno sull'host ho le stesse variabili ENV impostate come definisco nel mio Dockerfile.

Chiunque ha qualche idea su cosa sta succedendo qui, ho un ticket aperto con il mio team di networking che si occupa del proxy, ma devono ancora essere di alcun aiuto.

+1

Il contenitore non può risolvere proxy.gc.corp.com tramite DNS. Puoi risolvere qualsiasi indirizzo in un contenitore funzionante? – Matt

+0

No, non posso, hai ragione. Perché è diverso dal contenitore di docker rispetto alle stesse chiamate HTTP eseguite sull'host? Sono entrambi Ubunutu 14.04 OS, immagino che il container mobile I.P. o qualcosa. –

+0

Difficile dirlo, dovrebbe normalmente funzionare. Quale versione della finestra mobile? Cosa dicono i tuoi contenitori '/ etc/resolv.conf'? Puoi eseguire il ping di qualsiasi cosa esterna al tuo contenitore? – Matt

risposta

Problemi correlati