2015-11-15 12 views
6

मैं अपने देव और उत्पादन पर्यावरण के निर्माण के लिए डॉकर का उपयोग करने की योजना बना रहा हूं। मैं Django आधारित ऐप का निर्माण।डॉकर उत्पादन में लिखें?

देव पर मैं सभी स्थानीय कंटेनर को मैंग करने के लिए docker-compose का उपयोग करता हूं। यह एक अच्छा और सुविधाजनक समाधान है। मैं Django, 3 अजवाइन कतार, rabbitmq, 2 postgresql डीबी चलाते हैं।

लेकिन मेरा उत्पादन वातावरण काफी अलग है। मुझे बंदूक और nginx चलाने की जरूरत है। इसके अलावा डीडब्ल्यू एडब्ल्यूएस आरडीएस का उपयोग करके भाग लिया जाएगा। बेशक Django ऐप को अधिक सेटिंग्स की आवश्यकता होगी, जैसे विभिन्न सेटिंग्स फ़ाइल या अधिक env vars।

मैं इसे विभाजित करने के लिए घूम रहा हूं। क्या मुझे docker-compose भी चाहिए? इसके लिए देव और प्रोड के लिए अलग-अलग फाइलों की आवश्यकता होगी, भविष्य में स्टेजिंग आदि के लिए भविष्य में अधिक ... यदि हां, तो इसे कैसे तैनात किया जाए? जेनकींस का उपयोग करके, खींचें, लिखें का उपयोग करके सभी को पुनरारंभ करें?

या शायद मुझे सीधे docker आदेश चलाने के लिए उत्तरदायी उपयोग करना चाहिए? लेकिन तब मुझे कोई भरोसा नहीं है कि मेरा देव जीवित जैसा ही है और इसके व्यवहार की भविष्यवाणी करना मुश्किल है।

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

+2

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

+0

एक पंक्ति में तीसरी परियोजना में मैं प्रत्येक पर्यावरण के लिए अलग-अलग फाइलों का उपयोग कर रहा हूं। – Opal

उत्तर

8

http://docs.docker.com/compose/extends/#multiple-compose-files का उपयोग करके आप docker-compose.yml में सभी सामान्य सामान रख सकते हैं और अतिरिक्त सेवाओं को जोड़ने, लिंक, पर्यावरण और बंदरगाहों को जोड़ने के लिए docker-compose.prod.yml का उपयोग कर सकते हैं।

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