मैं एक डॉकटर कंटेनर में C ++ प्रोजेक्ट बनाने के लिए जेनकिंस का उपयोग करने की कोशिश कर रहा हूं। मुझे जेनकिंस में कोई समस्या नहीं है, या जेनकींस के बाहर एक कंटेनर में निर्माण करने की कोई समस्या नहीं है।
नीचे मैंने कोशिश की है। मैं स्पष्टता के लिए मैपिंग संस्करणों को छोड़ रहा हूं।
मामला एक
निम्न आदेश सफलतापूर्वक शेल में एक बिल्ड चलाता है।
docker run --rm --interactive=true --tty=true $IMAGE make
हालांकि जब जेनकींस में "निष्पादित शेल" कदम के रूप में चलाया जाता है तो डॉकर निम्न त्रुटि देता है।
cannot enable tty mode on non tty input
केस 2
निम्न आदेश पिछले एक के समान है, लेकिन अन्तरक्रियाशीलता को निष्क्रिय करता है।
docker run --rm $IMAGE make
जेनकिंस एक बिल्ड सफलतापूर्वक चला सकते हैं। हालांकि एक निर्माण को रद्द करते समय गंभीर मुद्दे हैं। बिल्ड को तुरंत गर्भपात के रूप में चिह्नित किया जाता है लेकिन जब तक निर्माण पूरा नहीं हो जाता तब तक कंटेनर चलता रहता है। साथ ही कंटेनर को बाहर निकलने के बाद हटाया नहीं जाता है।
जब एक शेल में चलाया जाता है तो कमांड सफलतापूर्वक बनती है लेकिन इसे बाधित करना संभव नहीं है। साथ ही कंटेनर को बाहर निकलने के बाद हटा दिया जाता है।
सवाल
क्या कोई जान सकता है कि जेनकींस से डॉकटर कंटेनरों में साफ-सुथरी इमारतें कैसे बनती हैं और बिल्ड को खत्म करने की क्षमता बरकरार रहती है?
जेनकिन्स प्लगइन्स में से किसी का उपयोग करना एक विकल्प नहीं है क्योंकि डॉकर कॉल स्क्रिप्ट के अंदर हैं और आसानी से नहीं निकाले जा सकते हैं।