2016-01-10 5 views
5

मैं ट्रैकर सीआई का उपयोग डॉकरफाइल से डॉकर छवियों के निर्माण के लिए कर रहा हूं और फिर उन्हें सफलता पर डॉकर हब में डाल रहा हूं।मैं डॉकर हब पर स्वचालित विवरण कैसे अपडेट कर सकता हूं?

मैंने छवि का वर्णन करने और इसका उपयोग करने के लिए एक एमडी फ़ाइल बनाई है। मैं पूर्ण विवरण खंड में डॉकर हब पर वही विवरण रखना चाहता हूं।

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

कोई भी जानता है कि यह कैसे करें?

उत्तर

8

Docker Hub does not expose any API के बाद से, डॉकर हब में सामान भेजने का एकमात्र तरीका दूरस्थ रूप से docker push कमांड के साथ है, और यह सीमा छवियों को भेजने के लिए उपयोग की जाती है।

दूसरी ओर, यदि आप डोकर हब सेवा एक Github या Bitbucket रिपोजिटरी से आप के लिए अपनी छवि का निर्माण करते हैं, तो डोकर हब का विस्तृत वर्णन है कि भंडार पर पाया README.md फ़ाइल की सामग्री लेने के द्वारा अद्यतन करेगा। डॉकर हब के स्वचालित बिल्ड दस्तावेज़ीकरण से Understand the build process अनुभाग देखें।

इसका मतलब है कि आप अपने Dockerfile होस्ट करते हैं और Github या Bitbucket पर फ़ाइलों README.md।


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

डोकर हब में ऐसा करने के लिए, अपनी छवि को आप के लिए स्वचालित होगा निर्माण (इसलिए एक Github या Bitbucket परियोजना सहयोगी) के रूप में कॉन्फ़िगर, लेकिन स्वत: विशेषता निष्क्रिय कर देते:

Docker Hub project build settings

फिर पर नीचे स्क्रॉल करें पृष्ठ पर ट्रिगर अनुभाग बनाएं और ट्रिगर URL कॉपी करें:

Docker Hub project build trigger

अब आप अपने .travis संपादित करें।YML फ़ाइल और निम्नलिखित ब्लॉक (मन <your account> और <your image> प्लेसहोल्डर) जोड़ें:

after_success: 
# notify Docker Hub to make a new build 
- > 
    [ "$TRAVIS_BRANCH" == "master" ] 
    && curl -X POST -H "Content-Type: application/json" 
    --data '{"docker_tag_name": "latest"}' 
    https://registry.hub.docker.com/u/<your account>/<your image>/trigger/$DOCKER_HUB_TOKEN/ 

तो ट्रैविस सीआई वेबसाइट पर अपनी परियोजना पृष्ठ पर जाएँ, और खोलने परियोजना सेटिंग्स:

Travis CI project settings

और DOCKER_HUB_TOKEN पर्यावरण ट्रैक्टर को अपने ट्रैविस सीआई प्रोजेक्ट में जोड़ें जो डॉकर हब बिल्ड सेटिंग्स पृष्ठ पर मिले ट्रिगर टोकन मान के साथ है:

Travis CI project environment variables

आप अभी भी अपने डोकर हब परियोजना से जुड़े एक Github या Bitbucket भंडार की आवश्यकता होगी, लेकिन ट्रैविस सीआई जब अपनी छवि का निर्माण करने के डोकर हब निर्देश देने के लिए एक हो जाएगा।

+0

हां, मुझे स्वचालित बिल्ड के बारे में पता है, लेकिन मैं ट्रेविस सीआई का उपयोग करना चाहता हूं, ताकि मैं परीक्षणों का एक गुच्छा भी कर सकूं। क्या कोई और तरीका है या क्या मुझे ब्राउज़र के रूप में कार्य करने और डॉकर हब पेज पर विवरण बदलने के लिए एक स्क्रिप्ट लिखनी चाहिए? – NEO

+0

@NEO यह किया जा सकता है, सेटअप अधिक जटिल है लेकिन मैं इसे स्पष्ट रूप से समझाने की कोशिश करूंगा → उत्तर – Thomasleveil

+0

संपादित करें यह वास्तव में एक अच्छा विचार है। लेकिन अगर मैं कई बिल्डों को ट्रिगर करना चाहता हूं तो मुझे क्या करना चाहिए? अब, मैं कुछ एवीवी चर बदलकर कई छवियों को बनाने के लिए ट्रैविस सीआई की बिल्ड मैट्रिक्स सुविधा का उपयोग कर रहा हूं। क्या मैट्रिक्स की प्रत्येक पंक्ति के निर्माण को ट्रिगर करना संभव है? – NEO

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