2016-05-10 5 views
11

में छवि को टैग करने के लिए कैसे करें हमारे पास हमारे सीआई-सीडी में तर्क है कि टैग (आरईएसटी के माध्यम से) नवीनतम छवि को स्टेजिंग करना (यदि परीक्षण सफल होते हैं)। यह रजिस्ट्री v1 पर काम किया।डॉकर रजिस्ट्री v2

अब v2 api में स्थानांतरित हो गया है, और मुझे रजिस्ट्री में मौजूदा छवि में टैग जोड़ने के लिए दस्तावेज़ीकरण में नहीं मिल रहा है .. मैं एक चरण में हूं जो कुछ स्टेजिंग छवि का "मैनिफेस्ट" ला सकता है, लेकिन सुनिश्चित नहीं है कि टैग कैसे जोड़ें और इसे http-पोस्ट करें। नीचे इनपुट भेजने की कोशिश की

  1. "टैग": "मचान", "नवीनतम",

  2. "टैग": [ "मचान", "नवीनतम"], और अधिक

    { "schemaVersion": 1, "नाम": "configservice", "टैग": "मचान", "वास्तुकला": "amd64", "fsLayers": [....

उत्तर

5

यह आपके सवाल का सीधा जवाब नहीं है, लेकिन मैं हमेशा निम्नलिखित कर लिया है ...

docker pull myimage:staging 
docker run myimage:staging test 
docker tag myimage:staging myimage:release 
docker push myimage:release 
+2

यह निश्चित रूप से एक कामकाजी समाधान है, लेकिन इसे डॉकर बाइनरी होने की आवश्यकता है, संभवतः इसे रूट के रूप में चलाना आवश्यक है। इसके अलावा इसमें काफी समय लग सकता है, क्योंकि इसमें छवि डाउनलोड करना शामिल है। – wheleph

+3

प्रश्न के आधार पर, हम इसे सत्यापित करने के लिए छवि पर परीक्षण चला रहे हैं- इसलिए यह सीआई मशीन पर पहले से मौजूद होना चाहिए (या तो बनाया गया है या डाउनलोड किया गया है)। यह किसी भी अतिरिक्त चिंताओं को पेश नहीं करता है कि "परीक्षण" चरण नहीं है (केवल दूसरे 'डॉकर पुश' से अंतराल जो एक रेटग की स्थिति में काफी तेज़ है। –

9

आप डोकर रजिस्ट्री प्रकट स्कीमा संस्करण 2 का समर्थन करता है, तो आप सिर्फ प्रकट अपलोड कर सकते हैं एक नए टैग के तहत एक मौजूदा छवि का।

उदाहरण के लिए मान लीजिए कि आप busybox छवि का नवीनतम संस्करण टैग करना चाहते हैं। चरणों का होगा:

डाउनलोड मौजूदा प्रकट:

curl '<registry_url>/v2/mybusybox/manifests/latest' \ 
-H 'accept: application/vnd.docker.distribution.manifest.v2+json' \ 
> manifest.json 

यहाँ प्रकट नज़र आ सकते हैं (ध्यान दें कि schemaVersion है 2):

{ 
    "schemaVersion": 2, 
    "mediaType": "application/vnd.docker.distribution.manifest.v2+json", 
    "config": { 
     "mediaType": "application/octet-stream", 
     "size": 1459, 
     "digest": "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749" 
    }, 
    "layers": [ 
     { 
     "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", 
     "size": 667590, 
     "digest": "sha256:8ddc19f16526912237dd8af81971d5e4dd0587907234be2b83e249518d5b673f" 
     } 
    ] 
} 

अपलोड एक नए टैग के तहत प्रकट:

curl -XPUT '<registry_url>/v2/mybusybox/manifests/new_tag' \ 
-H 'content-type: application/vnd.docker.distribution.manifest.v2+json' \ 
-d '@manifest.json' 

विस्तृत 0 -में विस्तृत चरण-दर-चरण मार्गदर्शिका दी गई है।

+3

आपको वेबसाइट के मामले में यहां निर्देश पोस्ट करना चाहिए नीचे चला जाता है - http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links- कहीं- वास्तव में- अच्छा-answers – kichik

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