मैं अपने प्रोजेक्ट के लिए डॉक, कुबेरनेट्स और जेनकिंस का उपयोग करके CI / CD पाइपलाइन को लागू करने की कोशिश कर रहा हूं। मेरा आवेदन बहु-किरायेदार अनुप्रयोग है जिसमें डेटाबेस अनुप्रयोग चर सब कुछ अलग किरायेदार के लिए अलग है।
आवेदन की रणनीति
जब मैं एक डॉकटर छवि का निर्माण कर रहा हूं तो मैं डॉकफाइल का उपयोग कर रहा हूं। और मैं अपने एसवीएन कोड रिपॉजिटरी के अंदर अपना डॉकरफाइल रखता हूं। प्रत्येक किरायेदार के लिए, कोड रिपॉजिटरी समान है। जब मैं एक छवि बना रहा होता हूं, उस समय मुझे अलग-अलग किरायेदार के लिए अलग-अलग चित्र बनाने की आवश्यकता होती है।
डॉकरीफाइल कार्यान्वयन
मेरी डॉक फ़ाइल में मैं निम्नलिखित की तरह प्रवेश बिंदु जोड़ रहा हूँ,
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=tenant1config" , "TestProject.war"]
अगर मुझे एक और किरायेदार के लिए डॉकर छवि बनाने की आवश्यकता है, तो जोड़ना होगा
-Dspring.profiles.active=tenant2config
तो डॉकफाइल में एंट्रीपॉइंट गतिशील है।
मेरा भ्रम
- डॉकरफाइल के अंदर प्रवेश बिंदु कमान के प्रबंधन के लिए गतिशील रूप से संभव है?
- या क्या मुझे एक और किरायेदार के लिए एक और डॉकरफाइल जोड़ने की आवश्यकता है? और अलग-अलग किरायेदार के लिए अलग से डॉक निर्माण कमांड चलाने की आवश्यकता है?
मैं इस समस्या के कार्यान्वयन का एक अच्छा मानक तरीका कैसे पा सकता हूं?
ENTRYPOINT
यानी... -Dspring.profiles.active=${TENANT}
फिर अपने तैनाती के दौरान सही वातावरण की स्थापना की।