2015-01-23 15 views
6

मैं देव मशीनों पर परीक्षण के लिए उपयोग करने के लिए कुछ डॉकर छवियां बनाने पर काम कर रहा हूं। मैं अपने मुख्य ऐप के साथ-साथ हमारी बाहरी निर्भरताओं (पोस्टग्रेस, लोचदार, आदि) के लिए एक बनाने की योजना बना रहा हूं। मुख्य ऐप के लिए, मैं डॉकरफ़ाइल लिखने या होस्ट करने के लिए एक छवि संकलित करने के निर्णय से संघर्ष कर रहा हूं।डॉकरफाइल बनाम डॉकर छवि

एक तरफ, डॉकरफ़ाइल समय के साथ साझा करना और संशोधित करना आसान है। दूसरी तरफ, मैं उम्मीद करता हूं कि उन्नत कॉन्फ़िगरेशन (एप्लिकेशन प्रॉपर्टी फाइलों को कस्टमाइज़ करना) एक नई छवि को करने से पहले vim में करना अधिक आसान होगा।

मैं समझता हूं कि मैं वही परिणाम प्राप्त कर सकता हूं, लेकिन मैं किसी भी दिशा के साथ प्रोस, कान्स और गॉथस की तलाश में हूं।

एक साइड नोट के रूप में, मैं इसे Fig का उपयोग करके सभी को एक साथ लपेटने की योजना बना रहा हूं। इस उपकरण का मेरा प्रारंभिक प्रभाव बहुत सकारात्मक रहा है।

धन्यवाद!

+1

स्रोत कोड या संकलित बाइनरी –

+0

के रूप में एप्लिकेशन को वितरित करने के समान चर्चा, इसे रखने का दिलचस्प तरीका। मैंने इस तरह से इस बारे में सोचा नहीं था। –

उत्तर

9

एक Dockerfile का उपयोग करना:

  • आपको एक 'ऑडिट लॉग' का वर्णन करता है कि कैसे छवि का निर्माण किया है। मेरे लिए यह मौलिक है अगर इसे उत्पादन पाइपलाइन में इस्तेमाल किया जा रहा है जहां अधिक लोग काम कर रहे हैं और रखरखाव प्राथमिकता होनी चाहिए।
  • आप सिस्टम छवियों के साथ कंटेनर को अपडेट करने का एक आसान तरीका होने के नाते, या यदि इसे निरंतर वितरण पाइपलाइन में भाग लेना है, तो आप अपनी छवि की बिल्डिंग प्रक्रिया को स्वचालित कर सकते हैं।
  • यह अपने कंटेनर के परतें बनाने की एक क्लीनर तरीका है (प्रत्येक Dockerfile आदेश एक अलग परत है)

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

इसके अलावा, यदि आपको फ़ाइल को संशोधित करना और बैश टूल (awk, sed ...) का उपयोग करके इसे करना बहुत कठिन है, तो आप बिल्डिंग प्रक्रिया के दौरान बाहर से जो भी फाइल चाहते हैं उसे जोड़ सकते हैं।

+0

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

6

मैं पूरी तरह से जेवियर से सहमत हूं लेकिन आपको यह समझने की आवश्यकता है कि डॉकरफ़ाइल के साथ बनाई गई एक छवि 1 दिन बाद डॉकरफ़ाइल के उसी संस्करण के साथ छवि निर्माण के साथ अलग हो सकती है।

शायद अपने निर्माण की प्रक्रिया में आपको किसी ऐप या की स्वचालित रूप से पिछले अद्यतन पुनः प्राप्त ओएस आदि ...

और इस समय यदि आप एक दुर्घटना पुन: पेश करने की जरूरत है या जो भी आप dockerfile पर भरोसा नहीं कर सकते हैं।

+0

इससे मुझे बहुत मदद मिली। मुझे विश्वास नहीं है कि मैंने इससे पहले नहीं सोचा था! – Baub

+2

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

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