2016-02-12 26 views
5

Bazı node.js hizmetlerini, docker kapsayıcılarındaki bir şirket sistemine dağıtıyorum. Bu hizmetler için My Dockerfiles ben vekil ortam değişkenleri kuruyorum hariç, çok temel şunlardır:NPM, Docker kapsayıcısı içinde başarısız olur, ancak host w/şirket proxy'si üzerinde çalışır

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 

ben NPM aşağıdaki hata alırsınız bu dosyadan benim imaj yaratmak:

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

Ancak, ana makine makinesinde (Node.js'nin yanı sıra Docker'ın da bulunduğu) NPM yüklemesini gerçekleştirdiğimde, NPM yüklemesi normal şekilde çalışıyor ve sorun olmadan tamamlanıyor. Ana bilgisayarlardan biri, Dockerfile'ımda tanımladığım aynı ENV değişkenlerine sahip.

Burada neler olup bittiği hakkında herhangi bir fikriniz varsa, proxy'den sorumlu ağ ekibimle bir biletim var ancak henüz herhangi bir yardımda bulunmuyorlar. Bu DNS ilgiliydi

+1

Kapsayıcınız proxy.gc.corp.com'u dns ile çözemez. Çalışan bir kapsayıcıdaki herhangi bir adresi çözebilir misiniz? – Matt

+0

Hayır, yapamam, haklısın. Neden, sunucuda aynı http çağrıları yerine, docker kabından farklı mıdır? İkisi de Ubunutu 14.04 OS'lerde, sanırım docker kabı I.P. ya da başka birşey. –

+0

Söylemesi zor, normalde çalışmalıdır. Hangi docker sürümü? Kaplarınız '/ etc/resolv.conf' ne diyor? Konteynerinden harici bir şey yapabilir misin? – Matt

cevap