2016-05-11 14 views
5

मेरे पास डॉकर में होस्ट किया गया एक फ्रंट-इन वेब एप्लिकेशन है। बैकएंड पहले से मौजूद है लेकिन इसमें "कस्टम आईपी" पता है, इसलिए मुझे इसे एक्सेस करने के लिए अपनी स्थानीय/etc/hosts फ़ाइल को अपडेट करना पड़ा। तो, मेरी स्थानीय मशीन से मैं समस्या के बिना बैकएंड एपीआई तक पहुंचने में सक्षम हूं।डॉकर रन परिणाम "अपस्ट्रीम में होस्ट नहीं मिला" त्रुटि

लेकिन समस्या यह है कि डॉकर किसी भी तरह से "कस्टम आईपी" को हल नहीं कर सकता है, भले ही मेजबान कंटेनर (छवि?)/Etc/hosts फ़ाइल में लिखे गए हों।

जब डोकर कंटेनर शुरू होता है मैं यह त्रुटि

$ docker run media-saturn:dev 
2016/05/11 07:26:46 [emerg] 1#1: host not found in upstream "my-server-address.com" in /etc/nginx/sites/ms.dev.my-company.com:36 
nginx: [emerg] host not found in upstream "my-server-address.com" in /etc/nginx/sites/ms.dev.my-company.com:36 

देख मैं अद्यतन/etc/hosts Dockerfile में आदेश के माध्यम से फाइल, इस

# install wget 
RUN apt-get update \ 
    && apt-get install -y wget \ 
    && rm -rf /var/lib/apt/lists/* 

# The trick is to add the hostname on the same line as you use it, otherwise the hosts file will get reset, since every RUN command starts a new intermediate container 
# it has to be https otherwise authentification is required 
RUN echo "123.45.123.45 my-server-address.com" >> /etc/hosts && wget https://my-server-address.com 

की तरह जब मैं मशीन के लिए में ssh/etc/hosts की वर्तमान सामग्री की जांच करें, लाइन "123.45.123.45 my-server-address.com" वास्तव में वहां है।

क्या कोई इस से मेरी सहायता कर सकता है? मैं डॉकर न्यूबी हूं।

+0

आपको क्या त्रुटि संदेश मिलता है? क्या आप प्रॉक्सी के पीछे हैं? – VonC

+0

@VonC त्रुटि संदेश 'होस्ट को अपस्ट्रीम में नहीं मिला "ms-test.internal.pricefx.eu" /etc/nginx/sites/ms.dev.topmonks.com में: 36' (पहले से ऊपर उल्लिखित) है। कोई प्रॉक्सी –

+0

आपकी छवि बनाने के लिए आप किस कमांड का उपयोग कर रहे हैं? (मतलब, क्या आपने 'मीडिया-सैटर्न: देव' टैग की गई छवि बनाई है जिसमें एक 'wget ms-test.internal.pricefx.eu' सफल हुआ?) – VonC

उत्तर

1

मैंने इसे हल किया है। खेल में दो चीजें हैं।

एक यह स्थानीय रूप से कैसे काम करता है और दूसरा यह है कि यह डॉकर क्लाउड में कैसे काम करता है। docker run -it --add-host="my-server-address.com:123.45.123.45" -p 80:80 media-saturn:dev

डोकर बादल कार्यप्रवाह: docker build -t media-saturn:dev .

  • builded छवि चलाएँ:

    स्थानीय कार्यप्रवाह

    • परियोजना है, जहां Dockerfile
    • निर्माण छवि स्थित है की जड़ में सीडी

      • इस
      • की तरह अपने Stackfile को extra_host निर्देश जोड़ें, और उसके बाद डोकर बादल में पुनर्वितरित क्लिक करें, ताकि परिवर्तनों को प्रभावी

        extra_hosts ले:

        • 'मेरे-server-पता। कॉम: 123.45.123.45 '

      अनुकूलन युक्ति

      • डोकर को deamon
      • .dockerignore फ़ाइल
      • आम तौर पर आप node_modelues, bower_modules और tmp
      • जैसे फ़ोल्डर जोड़ना चाहते हैं जोड़ने के डेटा भेजने की प्रक्रिया में तेजी लाने के लिए संभव के रूप में कई फ़ोल्डरों की अनदेखी
      • मेरे मामले में tmp में लगभग 1 था।3 जीबी छोटी फाइलें, इसलिए इसे अनदेखा करना प्रक्रिया को बढ़ाकर
  • संबंधित मुद्दे