2016-07-26 11 views
5

मैं वर्तमान में जेनकिंस के साथ संयोजन में डॉकर के साथ प्रयोग कर रहा हूं ताकि सीआई/सीडी वर्कफ़्लो को एक नई परियोजना के लिए व्यवस्थित किया जा सके। मैं डॉकर 1.12 स्थापित मैक पर ऐसा करता हूं।जेनकिन्स डॉकर दास को डॉकर छवियों का निर्माण करने के लिए नहीं मिल सकता है

  1. उपयोग डोकर मशीन है कि सर्वर पर एक जेनकींस उदाहरण ऊपर स्पिन "फिर भी
  2. स्थापित एक नया डोकर सर्वर
  3. उपयोग आधिकारिक जेनकींस डोकर छवि बनाने के लिए:

    यह मैं क्या कर रहा है एक अन्य डॉकर प्लगइन "और" क्लाउडबीज डॉकर पाइपलाइन "प्लगइन्स।

  4. एक "डोकर बादल" ऊपर डोकर सर्वर और तीसरे पक्ष के डोकर DinD छवि tehranian/dind-जेनकींस दास इस स्थापना के साथ

के आईपी का उपयोग कर जोड़ें, मैं इस तरह एक बहुत ही सरल पाइपलाइन काम चलाने :

node('docker') { 
    docker.image('hseeberger/scala-sbt').inside { 
     stage 'Checkout' 
     echo 'We got here!' 
    } 
} 

जेनकिन्स एक डॉकर उदाहरण को उम्मीद के रूप में स्पिन करता है और नौकरी निष्पादित करता है। तो बुनियादी डॉकर सेटअप अपेक्षित के रूप में काम कर रहा है।

लेकिन नौकरी के भीतर डॉकर कमांड विफल रहता है। लॉग इन करें उत्पादन इस तरह दिखता है: जब मैं समाधान के लिए चारों ओर ब्राउज़ अब

[Pipeline] node 
Still waiting to schedule task 
Docker-23ebf3d8dd4f is offline 
Running on Docker-23ebf3d8dd4f in /home/jenkins/workspace/docker-test 
[Pipeline] { 
[Pipeline] sh 
[docker-test] Running shell script 
+ docker inspect -f . hseeberger/scala-sbt 

Cannot connect to the Docker daemon. Is the docker daemon running on this host? 
[Pipeline] sh 
[docker-test] Running shell script 
+ docker pull hseeberger/scala-sbt 
Using default tag: latest 
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/ 
Cannot connect to the Docker daemon. Is the docker daemon running on this host? 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 

, यह आमतौर पर उल्लेख किया गया है कि डोकर सॉकेट एक मात्रा के रूप में कंटेनर के लिए प्रदान किए जाने की आवश्यकता है, लेकिन है कि या तो काम करने के लिए प्रतीत नहीं होता ।

चूंकि सामान्य सेटअप काम करता प्रतीत होता है, तो क्या दास को केवल वही काम करना पड़ेगा जैसा कि जेनकिंस प्लगइन पहली जगह डॉकर गुलाम को फैलाने के लिए करता है? यही है, इसे नियंत्रित करने के लिए डॉकर सर्वर के यूआरएल का उपयोग करें? चूंकि मुझे लगता है कि यह एक बेहद आम उपयोग-मामला है, इसलिए जेनकींस डॉकर दासों के लिए डॉकर छवि होनी चाहिए जो इसे बॉक्स से बाहर कर सकती है, है ना? मैं क्या खो रहा हूँ?

+0

मान लीजिए कि आपने डॉकर सॉकेट को माउंट किया है जैसा कि आपने उल्लेख किया है, ताकि जेनकिंस द्वारा डॉकर कंटेनर को चालू किया जा सके, यह /var/run/docker.sock पर है। जेनकिंस द्वारा बनाए गए डॉकर कंटेनर में दिए गए कदम कुछ उपयोगकर्ता द्वारा चलाए जाते हैं - क्या यह उपयोगकर्ता घुड़सवार डॉकर सॉकेट तक पहुंच सकता है? उदाहरण के लिए, उपयोगकर्ता 'डॉकर' समूह में है? – wujek

+0

मुझे नहीं लगता कि आपको 'नोड (' डॉकर ')' भाग की आवश्यकता है, इसके अनुसार: https://go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/chapter-docker-workflow। एचटीएमएल हालांकि यह आपकी समस्या को ठीक नहीं करेगा .. मुझे एक ही समस्या है। क्या आपने इसे ठीक किया? – Stretch

उत्तर

0

आपको डॉकर एनवी सेट करने और docker-machine env node की सामग्री को अपने चल रहे शेलस्क्रिप्ट में उपयोग करने की आवश्यकता हो सकती है।

+0

वह चिकन-एंड-अंडे की स्थिति के कारण काम नहीं करेगा: कमांड चलने वाले डॉकर इंस्टॉलेशन के बिना नहीं चलेगा। – Lunikon

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