2014-08-04 11 views
8

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

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

मैं दो विकल्प हैं, लेकिन यकीन नहीं अगर वे संभव है,

विकल्प 1:

जब आप जेनकींस में काम चलाने के लिए, ट्रिगर डोकर रन [सभी निर्भरता के साथ कंटेनर] [स्क्रिप्ट चलाने के लिए परीक्षण] लेकिन मुझे यकीन नहीं है कि क्या हम एक कंटेनर के अंदर से डॉकर चलाने को ट्रिगर कर सकते हैं ??

विकल्प 2:

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

धन्यवाद

+3

विकल्प के लिए जाएं 2. सामान्य रूप से जेनकिंस में दासों पर चलने वाली नौकरियां बनाएं। जेनकींस डॉकर कंटेनर दस्तावेज़ में "संलग्न बिल्डिंग निष्पादकों" पर अनुभाग देखें: https://registry.hub.docker.com/_/jenkins/ यह एक उदाहरण दास बिल्ड एजेंट से लिंक है: https: //registry.hub.docker .com/यू/maestrodev/निर्माण-एजेंट / –

उत्तर

1

अपने जेनकींस गुलाम नोड के बजाय अपनी जेनकींस कंटेनर में नौकरियों को चलाने के लिए 2

उपयोग जेनकींस काम ट्रिगर ऑप्शन के लिए जाने के लिए सिफारिश।

और अपने डॉकर कंटेनर को प्रबंधित करने के लिए jenkins docker plugin का उपयोग करें जो डीबी, phpunit, उन्हें जेनकिंस गुलाम नोड के रूप में व्यवहार करते हैं, यह बहुत आसान होगा।

4

मुझे यकीन है कि मैं अपने प्रश्न का उत्तर लेकिन जेनकींस घोषणात्मक पाइपलाइन में होगा https://jenkins.io/doc/book/pipeline/syntax/ आप आसानी से डोकर कंटेनर जिस पर आप

php --version

की तरह अपने प्रौद्योगिकी विशेष कदम निष्पादित करने के लिए अपने जेनकींस हैं चाहते हो सकता है चला सकते हैं नहीं कर रहा हूँ एक डॉकर कंटेनर के रूप में चल रहा है, आप इस छवि को डॉकर क्लाइंट के साथ विस्तारित करना चाहते हैं और यह मेजबान डॉकर से जुड़ने की अनुमति देता है और नए डॉकर कंटेनर को जेनकिन्स कंटेनर भाई-बहनों के रूप में नहीं बनाता है। के लिए आप मेजबान से कि करने के लिए docker.sock बात की जरूरत है कि:

docker run -v /var/run/docker.sock:/var/run/docker.sock 
आप इस ब्लॉग पोस्ट में मिल सकता है इस तरह के समाधान के

पूर्ण विवरण: https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

php और चल रहा है के साथ डोकर चलाने के लिए सरल पाइपलाइन php --version इस तरह दिखता है।

pipeline { 
    agent { docker 'php' } 
    stages { 
     stage('build') { 
      steps { 
       sh 'php --version' 
      } 
     } 
    } 
} 

उदाहरण यहाँ https://jenkins.io/doc/pipeline/tour/hello-world/

पाया आशा है कि एक सा मदद करता है।

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