RUN के साथ Dockerfile से / etc / मेजबान फ़ाइल को नहीं लिख सकता


9

मैं एक बहुत ही सरल डॉकरफाइल का उपयोग करके डॉक इमेज बना रहा हूं। Dockerfile के अंदर मेरे पास यह कमांड है:

RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts

आदेश स्वयं ही ठीक प्रतीत होता है, क्योंकि छवि का निर्माण इस बिंदु पर नहीं रुकता है।

मुद्दा यह है: छवि को चलाते समय, "/ etc / मेजबान" के अंदर डाली जाने वाली पंक्ति नहीं है।

अब, मैंने चारों ओर खोज की और पता चला कि डॉक के संस्करण 1.2 से पहले, कंटेनरों के अंदर मेजबान फ़ाइल के साथ एक समस्या थी। मेरे मामले में, मैं संस्करण 1.5 का उपयोग कर रहा हूं, इस क्षण के रूप में नवीनतम।

क्या मैं कुछ भूल रहा हूँ?

अद्यतन 1:

ऐसा लगता है कि इसके लिए बहुत सारे मुद्दे हैं, जो डॉकटर के गितुब पृष्ठों में खुले और बंद दोनों हैं।

जवाबों:


12

यह डॉकटर 1.7.0 पर काम करता है

RUN echo "192.168.11.112 myhost" >> /etc/hosts && wget http://myhost

ट्रिक को होस्टनाम को उसी लाइन पर जोड़ना है जैसे आप इसका उपयोग करते हैं, अन्यथा होस्ट फ़ाइल को रीसेट मिल जाएगा, क्योंकि प्रत्येक आरयूएन कमांड एक नया मध्यवर्ती कंटेनर शुरू करता है। उदाहरण के लिए, यह काम नहीं करेगा :

RUN echo "192.168.11.112 myhost" >> /etc/hosts
RUN wget http://myhost

1
अंतर्दृष्टि के लिए धन्यवाद! यद्यपि सही (मैंने जाँच की) और सामान्य रूप से उपयोगी है, इस मामले में यह मेरे लिए कोई वास्तविक उपयोग नहीं है। जब कंटेनर चलता है तो मुझे "होस्ट" फ़ाइल की आवश्यकता होती है।
dlyk1988

7

मेरे सवाल का अपडेट लिखने के बाद मैंने जीथब में खोले गए "मुद्दों" पर एक और कड़ी नज़र रखने का फैसला किया। पता चला है, एक वर्कअराउंड लागू किया गया है:

docker run ... --add-host='server:0.0.0.0' ...

कंटेनर शुरू करते समय "--add- होस्ट ..." तर्क का उपयोग करके मेजबान फ़ाइल को संशोधित करना संभव है।


5
मैं हालांकि यह निर्माण करने में सक्षम होना चाहता हूं। कंटेनर चलाने वाले व्यक्ति को आंतरिक होस्ट के बारे में जानना होगा। शून्य बोध बनाता है!
samsamm777

मुझे @ samsamm777 गूंज है। आश्चर्य है कि अगर ऐसा करने का एक अच्छा तरीका है?
जोनाथन

यह वास्तव में बहुत ही आश्चर्यजनक व्यवहार है, जो आईटी सिस्टम में एक अच्छा विचार नहीं है।
टॉरस्टेन ब्रॉन्जर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.