2016-02-09 9 views
5

पीछे स्थापित मैं इस Dockerfile है:डोकर: NPM प्रॉक्सी

FROM node:argon 

ENV http_proxy http://user:[email protected]:3128 
ENV https_proxy https://user:[email protected]:3128 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

# Install app dependencies 
COPY package.json /usr/src/app/ 
RUN npm install 

# Bundle app source 
COPY . /usr/src/app 

EXPOSE 8080 
CMD [ "npm", "start" ] 

लेकिन मैं इस त्रुटि, NPM में कदम स्थापित मिलती है:

npm info it worked if it ends with ok npm info using [email protected] npm info using [email protected] npm WARN package.json [email protected] No description npm WARN package.json [email protected] No repository field. npm WARN package.json [email protected] No README data npm info preinstall [email protected] npm info attempt registry request try #1 at 7:09:23 AM npm http request GET https://registry.npmjs.org/body-parser npm info attempt registry request try #1 at 7:09:23 AM npm http request GET https://registry.npmjs.org/express npm info retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO npm info retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO

मैं इसे प्रॉक्सी की वजह से है लगता है। मैंने

RUN npm config set proxy http://user:[email protected]:3128 
RUN npm config set https-proxy http://user:[email protected]:3128 

को अभी भी एक ही त्रुटि प्राप्त करने का प्रयास किया है। पहले से

Environment="HTTP_PROXY=http://user:[email protected]:3128" 
Environment="HTTPS_PROXY=https://user:[email protected]:3128" 

धन्यवाद:

इसके अलावा, मेरी फाइल /etc/systemd/system/docker.service.d/http-proxy.conf में मैं इस किया है।

उत्तर

3

पहले https_proxy को http url का उपयोग करना चाहिए, न कि https url।

दूसरे, आप अपने Dockfile में अपनी प्रॉक्सी सेटिंग एम्बेड करने के लिए की जरूरत नहीं है: आप उपयोग कर सकते build time variables

docker build --build-arg HTTP_PROXY=http://user:[email protected]:3128 --build-arg HTTPS_PROXY=http://user:[email protected]:3128 .

अंत में, proxy settings at the docker service level डोकर डेमॉन इंटरनेट से छवियों को खींचने के लिए अनुमति देता है। इसका मतलब यह नहीं है कि docker build द्वारा यूनिक्स कमांड निष्पादित (RUN निर्देश) से लाभ होगा। इसलिए उन्हें बिल्ड-टाइम पर्यावरण चर के रूप में पारित करने की आवश्यकता है।

3

मुझे भी यही समस्या थी और मेरी छवि में कोई प्रॉक्सी जानकारी सेट नहीं करना चाहती क्योंकि मैं अपने कंपनी के पर्यावरण पर निर्भर नहीं होना चाहता था।

मेरा समाधान गेटवे मोड में चल रहे एक cntlm का उपयोग करना था। तो मैं yes करने के लिए ध्वज Gateway सेट कर दिया ऐसा करने के लिए निम्न की अनुमति मेरी cntlm विन्यास फाइल में नियम:

Gateway   yes 
# Allow local 
Allow   127.0.0.1 
# Allow docker subnetwork 
Allow   172.17.0.0/16 

तब मैं dokcer0 इंटरफ़ेस पता प्राप्त करके मेरी डोकर फ़ाइल को चलाने में सक्षम था (ifconfig कमांड के साथ मिल गया):

docker build -t my-image --build-arg HTTP_PROXY=http://172.17.0.1:3128 --build-arg HTTPS_PROXY=http://172.17.0.1:3128 . 
+0

मेरे पास एक ही समस्या है लेकिन आपका समाधान मेरे लिए काम नहीं करता है। मेरे पास फ़ायरफ़ॉक्स, प्रॉक्सी सेटिंग 127.0.0.1:3128 के साथ सफल चल रहा है cntlm है। लेकिन डॉकर के साथ आईपी के रूप में मैं कोशिश करता हूं इससे कोई फर्क नहीं पड़ता कि यह काम नहीं करता है। मैं विंडोज 10 का उपयोग कर रहा हूं। मेरे पास सबनेट पता के रूप में 10.0.75.0 है और ipconfig/मेरे पास 10.0.75.1 है। एनपीएम कुछ भी स्थापित नहीं करेगा। कोई उपाय? बीटीडब्लू: अगर मैं प्रॉक्सी सूचना उपयोगकर्ता डालता हूं: [email protected] यह ठीक काम करता है। –

संबंधित मुद्दे