2015-01-28 15 views
18

मेरे पास डॉकर कंटेनर का एक समूह है जो सभी डॉकर-कंपोज़ (पहले अंजीर) का उपयोग करके लगा हुआ है। मैंने पाया है कि जो सेवाएं खुद को "डॉकर सीआई" सेवाओं के रूप में विज्ञापित करती हैं, वे आम तौर पर अपने बिल्ड श्रमिकों को चलाने के लिए डॉकर का उपयोग करने के बारे में बात कर रहे हैं।क्या कोई सीआई सेवा आपको डॉकर कंटेनर बनाने और डॉकर बिल्ड कैश का उपयोग करने देती है?

मुझे एक निरंतर एकीकरण सेवा चाहिए जो पूरी तरह से नए कार्यकर्ता/फाइल सिस्टम/निर्माण संदर्भ को कताई करने के बजाय रन के बीच डॉकर बिल्ड कैश को सुरक्षित रखे। अन्यथा, पूरी तरह से हमेशा के लिए लेता है। आदर्श रूप से प्रबंधित (https://github.com/groupon/DotCi के विपरीत, जो CircleCI के प्रति-निर्मित प्रति-निर्माण डेटाबेस के साथ नहीं आता है)।

एकमात्र चीज जो मैंने पाया है वह टीमसिटी है (पुराना, आप सर्कलसीआई के साथ आसानी से एक यम फ़ाइल में वर्जन बिल्ड वर्क नहीं कर सकते हैं, आपको बुनियादी ढांचे को बनाए रखना है, आदि)। Quay.io CircleCI और Travis do जैसे डेटाबेस को प्रावधान नहीं करता है, इसलिए आपको dev और prod को विभाजित करना होगा और कंटेनर के अंदर एक को इंस्टॉल करना होगा और कंटेनर बिल्ड के दौरान यूनिट परीक्षण चलाएं (ew - आप एक अनबिल्ट कंटेनर में नहीं जा सकते डीबग चीजें!)।

आप अपने डॉकर कंटेनर क्लस्टर पर निरंतर एकीकरण कैसे चलाते हैं?

+0

ध्यान दें कि ट्रैविस पर डॉकर छवियों को भी बनाना संभव है, https://blog.travis-ci.com/2015-08-19-using-docker-on-travis-ci/ – cboettig

उत्तर

14

अद्यतन: सर्कलसीआई 2.0 डॉकर केंद्रित है। आप डॉकर छवियों का निर्माण कर सकते हैं, परत कैशिंग का उपयोग कर सकते हैं, डॉकर कंपोज़ का उपयोग कर सकते हैं, और यहां तक ​​कि अपने निर्माण वातावरण के रूप में आधिकारिक और कस्टम डॉकर छवियों का भी उपयोग कर सकते हैं।


CircleCI आप अपने निर्माण के हिस्से के रूप डोकर कंटेनरों का निर्माण कर सकते हैं: https://circleci.com/integrations/docker

आप फिर भी सही है कि हम डोकर इमेज को कैश नहीं है - यह है कि सही करने के लिए हमारे ढेर पर थोड़ा मुश्किल है, लेकिन हम जल्द ही इसे संबोधित करने की योजना बना रहे हैं।

इस बीच में, ग्राहकों के एक नंबर CircleCI के अंतर्निहित (गैर डोकर) कैशिंग का उपयोग कर इसे संचित docker save/docker load का उपयोग करके: https://circleci.com/docs/docker#caching-docker-layers। यह आदर्श नहीं है, लेकिन इसे तब तक ज्वार करना चाहिए जब तक कि हम इसे बहुत बेहतर समर्थन नहीं दे पाते।

+7

मेरी इच्छा है ' डॉकर लोड 'ने ऐसा किया, लेकिन यह बिल्ड कैश को सुरक्षित नहीं करता है। 'डॉकर लोड' में एक निजी भंडार से पूरी तरह से निर्माण छवि खींचने के रूप में उतना समय लगता है, इसलिए यह चाल नहीं करता है। – user3906849

+2

पॉल क्या आपके पास "जल्द ही संबोधित करने की योजना" के बारे में एक अपडेट होगा? यह दिलचस्प होगा। – user2707671

+0

मेरे परीक्षण के आधार पर, यह मेरी समझ है कि लिंक के रूप में 'डॉकर सेव/लोड' रणनीति भी काम नहीं करती है (इस बिल्ड के अनुसार डॉकर बिल्ड कमांड पूरी तरह से चल रहे हैं): https: //discuss.circleci .com/t/docker-1-10-0-is-available-beta/2100/15 @ पॉल-बड़ागर, या कोई भी- क्या कोई कामकाजी उदाहरण है? – thisjustin

3

मैं वर्तमान में CircleCI उपयोग कर रहा हूँ, एक अच्छा गाइड के लिए http://tschottdorf.github.io/cockroach-docker-circleci-continuous-integration देख डोकर कैश

शिप करने योग्य उपयोग करने के लिए भी बाहर की जाँच के लायक, के रूप में अपने पूरे बुनियादी ढांचे डोकर और shippable formations के साथ कई डोकर कंटेनर orchestrating के आसपास आधारित है।

+1

बस एक त्वरित फिक्स, ब्लॉग पोस्ट के लिए यूआरएल की तरह दिखता है केवल स्लैश के रूप में यह 404 वापस आ जाएगी बिना काम करता है: http://tschottdorf.github.io/cockroach-docker-circleci-continuous-integration – fagiani

+0

@fagiani धन्यवाद, बस यूआरएल – d3ming

2

कोडशिप अब डॉकर छवि कैश को संग्रहीत करने और अपने निर्माण को तेज़ करने के लिए इसे पुनः प्राप्त करने का समर्थन करता है।

https://codeship.com/documentation/docker/caching/

-2

आप wercker को देखा है? यह "अपना स्वयं का कंटेनर लाता है" का समर्थन करता है, आपकी छवियों को कैश करेगा (मुझे प्रति कार्यकर्ता आधार पर लगता है, लेकिन कुछ बिल्डों के बाद आमतौर पर स्टार्टअप कस्टम छवि के साथ कुछ सेकंड तक कम हो जाता है), और afaik डॉकर छवियों को बनाने की अनुमति देता है।

डाउनसाइड: इसे far too many GitHub permissions की आवश्यकता है।

+0

को ठीक कर दिया है यह आपको अपने 'डॉकरफाइल' का उपयोग करने भी नहीं देता है, इसलिए यह एक अच्छा समाधान नहीं है। –

+0

@SteffenBrem: आप अपनी डॉकरफाइल से डॉकर हब पर अपनी छवियां बना सकते हैं और उन्हें वर्कर में उपयोग कर सकते हैं। मेरे लिये कार्य करता है। – krlmlr

0

संबंधित प्रश्न "How can I let the gitlab-ci-runner DinD image cache intermediate images?" है।

भले ही our solution को कम से कम बुनियादी ढांचे के रखरखाव की आवश्यकता होती है (हमें अपना खुद का धावक चलाने की आवश्यकता है), मुझे लगता है कि यह एक लायक है।

असल में हम डोकर में डोकर नहीं चला, लेकिन हम केवल दूसरे स्थान के लिए एक अलग वी एम बना रहे हैं। सुरक्षा और सफाई कार्यों के बारे में इसका कुछ प्रभाव है, कृपया हमारे धावक के README को भी देखें।

हो सकता है कि इस समाधान के रूप में विभिन्न सीआई सिस्टम के लिए डोकर समर्थन में सुधार हो जाता है भविष्य में अप्रचलित हो जाएगा, लेकिन अभी यह प्रदर्शन, का रखरखाव और प्रयोज्य के बीच एक अच्छा मिश्रण है।

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