मैं एक कूबड़ है डोकर बहुत मेरी webdev कार्यप्रवाह सुधार सकता है - लेकिन मैं काफी कैसे एक परियोजना ढेर करने के लिए डोकर जोड़ने दृष्टिकोण के आसपास मेरे सिर लपेटो करने में कामयाब नहीं किया है।
मूल सॉफ्टवेयर स्टैक इस तरह दिखेगा:
सॉफ्टवेयर
कस्टम LAMP स्टैक प्रदान करने वाली डॉकटर छवि
- कई मॉड्यूल के साथ अपाचे
- माई एसक्यूएल
- पीएचपी
- कुछ सीएमएस, जैसे सिल्वरस्ट्रिप
GIT
कार्यप्रवाह
मैं निम्नलिखित की तरह देखने के लिए वर्कफ़्लो की कल्पना कर सकता हूं:
विकास
Dockerfileऊपर वर्णित आवश्यकताओं को पूरा करने वाले एक LAMP- कंटेनर को परिभाषित करने वाला लिखें- REQ: बूट करने के तुरंत बाद मशीन को अपाचे / mysql शुरू करना चाहिए
- डॉकटर छवि बनाएँ
- CMS को उदा में चलाने के लिए आवश्यक फाइलों को कॉपी करें
~/dev/cmsdir~/dev/cmsdir/संस्करण नियंत्रण में रखें
- Docker कंटेनर चलाएँ, और किसी तरह कंटेनर पर माउंट
~/dev/cmsdirकरें/var/www/ - डेटाबेस पॉपुलेट करें
- में काम करते हैं
/dev/cmsdir/ - डॉकटर कंटेनर को कमिट करें और बंद करें
तैनाती
- दूरस्थ होस्ट सेट करें (जैसे ansible के साथ)
- दूरस्थ मेजबान के लिए कंटेनर छवि को पुश करें
cmsdirगिट के माध्यम से प्राप्त करें- डोकर कंटेनर चलाने के लिए, डेटाबेस में खींच सकते हैं और माउंट
cmsdirमें/var/www
अब, यह सब कागज पर काफी अच्छा लग रहा है, लेकिन मुझे यकीन नहीं है कि यह बिल्कुल सही दृष्टिकोण होगा।
प्रशन:
स्थानीय रूप से विकसित होने के दौरान, मुझे कंटेनर उदाहरण के रिबूट के बीच बने रहने के लिए डेटाबेस कैसे मिलेगा? या क्या मुझे कंटेनर से नीचे उतरने से पहले हर बार sql- डंप चलाने की आवश्यकता होगी?
क्या मुझे db और apache सर्वर के लिए अलग-अलग कंटेनर इंस्टेंसेस चाहिए? या उपरोक्त उपयोग के मामले के लिए एक ही कंटेनर रखना पर्याप्त होगा?
यदि डेटाबेस और सर्वर के लिए अलग-अलग कंटेनरों का उपयोग किया जाता है, तो मैं एक ही समय में उन्हें ऊपर और नीचे कताई को कैसे स्वचालित कर सकता हूं?
मैं वास्तव
/dev/cmsdir/में कंटेनरों में कैसे माउंट करूँगा/var/www/-directory क्या मुझे इसके लिए डेटा-वॉल्यूम का उपयोग करना चाहिए ?क्या मुझे कोई नुकसान हुआ? कुछ भी है कि सरलीकृत किया जा सकता है?