मल्टी-स्टेज बिल्ड के समर्थन से, रेपो को एक बिंदु तक बनाए रखना सुविधाजनक हो गया है। लेकिन आप इन रेपो का विस्तार कैसे कर सकते हैं?

अब तक, आप docker build कमांड में --target का उपयोग करके किसी विशिष्ट टैग की छवि बना सकते हैं।

Docker-compose से, आप इसे निर्दिष्ट करने के लिए context प्रविष्टि में target प्रविष्टि का उपयोग कर सकते हैं।

मेरे मामले में, मैं डॉकर हब से एक छवि का उपयोग करना चाहता हूं और एक विशिष्ट लक्ष्य का विस्तार करना चाहता हूं। अभी, मैं एक डॉकरफाइल का उपयोग कर रहा हूं (जिसे मैं डॉकर-कंपोज़ से कॉल करता हूं लेकिन इससे कोई फर्क नहीं पड़ता) जिसमें है

FROM repo/sample-name
DO my stuff

उस रेपो के अपने डॉकरफाइल में 3 लक्ष्य हैं जिनका नाम sample-name, sample-name-full है जो sample-name और sample-name-dev का विस्तार करता है जो sample-name-full का विस्तार करता है। इन नामों में डैश ठीक वैसे ही हैं जैसे रेपो ने अपना लक्ष्य रखा है।

ऐसा प्रतीत होता है कि मुझे पहला लक्ष्य निर्माण लक्ष्य (या मुझे लगता है कि मैं करता हूं) के रूप में प्राप्त कर रहा हूं जिसका नाम रेपो के नाम पर रखा गया है। मैं, मान लीजिए, मध्यवर्ती लक्ष्य को कैसे बढ़ा सकता हूं?

मैंने सामान की कोशिश की

FROM repo/sample-name:latest-sample-name-dev

आदि लेकिन मैं इसे काम नहीं कर सका।

0
I. Dimopoulos 27 नवम्बर 2018, 10:41

1 उत्तर

सबसे बढ़िया उत्तर

यह डिजाइन द्वारा संभव नहीं है। मल्टी-स्टेज बिल्ड का एक फायदा इंटरमीडिएट स्टेज को छिपाना है, एक उदाहरण हो सकता है कि पहले चरण में हार्ड कोडेड क्रेडेंशियल के साथ कुछ डाउनलोड किया जाए और फिर दूसरे चरण में उससे परिणाम कॉपी किया जाए। अंतिम छवि, जैसा कि डॉकरहब पर उपलब्ध है, जाहिरा तौर पर सिंगल-स्टेज निर्मित है। अधिकांश समय आप इसके बारे में चिंता नहीं करेंगे क्योंकि अंतिम चरण ने पिछले वाले से सभी उपयोगी चीजें हासिल कर ली हैं।

0
Siyu 6 जिंदा 2019, 14:58