2016-02-12 3 views
5

Ich stelle einige node.js-Dienste in Docker-Containern auf einem Unternehmenssystem bereit. Meine Dockerfiles für diese Dienste sind sehr einfach, mit der Ausnahme, dass ich die Proxy-Umgebungsvariablen setze:NPM-Installation schlägt innerhalb des Docker-Containers fehl, läuft aber auf Host mit Unternehmens-Proxy

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 

Als ich mein Bild aus dieser Datei baue ich folgende Fehlermeldung von NPM erhalten:

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

Wenn ich jedoch die NPM-Installation auf dem Host-Computer (auf dem Node.js und Docker installiert sind) ausführt, wird die NPM-Installation normal ausgeführt und ohne Probleme abgeschlossen. Auf dem Host habe ich dieselben ENV-Variablen, die ich in meiner Dockerfile definiert habe.

Wer irgendwelche Ideen hat, was hier vor sich geht, ich habe ein Ticket offen mit meinem Netzwerk-Team, das für den Proxy zuständig ist, aber sie sind noch keine Hilfe.

+1

Ihr Container kann proxy.gc.corp.com nicht über DNS auflösen. Können Sie Adressen in einem aktiven Container auflösen? – Matt

+0

Nein, ich kann nicht, du hast Recht. Warum unterscheidet es sich vom Andockcontainer, wenn dieselben HTTP-Aufrufe auf dem Host ausgeführt werden? Sie sind beide Ubunutu 14.04 OSs, ich vermute den Andock-Container I.P. oder so. –

+0

Schwer zu sagen, sollte normalerweise funktionieren. Welche Version von Docker? Was sagen Ihre Container '/ etc/resolv.conf'? Können Sie etwas von Ihrem Container pingen? – Matt

Antwort