2017-03-22 29 views
7

मेरे पास जेनकिंस पर कंटेनर और प्रोजेक्ट सोर्स कोड के अंदर चल रहे जेनकिंस हैं।जेनकिंस डॉकर कंटेनर के साथ डॉकर वॉल्यूम कैसे माउंट करें?

मुझे जेनकींस के समान मेजबान पर कंटेनर में प्रोजेक्ट चलाने की आवश्यकता है, लेकिन डॉकर-इन-डॉकर के रूप में नहीं, मैं उन्हें भाई कंटेनर के रूप में चलाने के लिए चाहता हूं।

मेरे पाइपलाइन इस तरह दिखता है:

  1. GitHub
  2. से स्रोत खींच परियोजना छवि
  3. परियोजना कंटेनर

मैं क्या अभी डोकर उपयोग कर रहा है चलाने का निर्माण जेनकिंस कंटेनर से मेजबान की सॉकेट:

/var/run/docker.sock:/var/run/docker.sock 

मैं समस्या है जब जेनकींस कंटेनर/var/jenkins_home/कार्यक्षेत्र/BRANCH_NAME से कंटेनर परियोजना के लिए स्रोत कोड के साथ मात्रा माउंट:

volumes: 
- ./servers/identity/app:/srv/app 

मैं खाली फ़ोल्डर "/ SRV/एप्लिकेशन" परियोजना कंटेनर में हो रही है

मेरा सबसे अच्छा अनुमान यह है कि डॉकर इसे मेजबान से माउंट करने की कोशिश करता है न कि जेनकिंस कंटेनर से।

तो सवाल यह है कि: मैं उस कंटेनर को स्पष्ट रूप से कैसे सेट कर सकता हूं जिससे मैं वॉल्यूम को माउंट करता हूं?

+0

क्या आपने इस मुद्दे को हल करने का अंत किया? मैं कुछ इसी तरह से चल रहा हूँ। –

उत्तर

1

कोशिश:

docker run -d --volumes-from <ContainerID> <YourImage> 

जहां कंटेनर आईडी कंटेनर की आईडी से मोंट डेटा के लिए आप चाहते हैं।

तुम भी, मात्रा बना सकते हैं द्वारा:

docker volume create <volname> 

और दोनों कंटेनरों

volumes: 
- <volname>:/srv/app 
1

होस्ट के बीच जुर्राब साझा करना के लिए असाइन करें और जेनकींस मेरी समस्या थी क्योंकि "/ var/jenkins_home" जेनकिंस कंटेनर के लिए सबसे अधिक मात्रा है।

मेरा समाधान सॉकेट साझा किए बिना एक सिस्टम कंटेनर के अंदर डॉकर इंस्टॉल कर रहा था।

docker run -d --name jenkins \ 
    --restart=unless-stopped \ 
    --privileged \ 
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ 
    -v jenkins-vol:/var/lib/jenkins \ 
    --tmpfs /run \ 
    --tmpfs /run/lock \ 
    ubuntu:16.04 /sbin/init 

फिर जेनकींस, डॉकर और डॉकर कंपोज़ को इंस्टॉल करें।

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