मैं एक अमेज़ॅन ईसीआर रजिस्ट्री के लिए एक डॉक छवि को धक्का देने की कोशिश कर रहा हूं। मैं docker क्लाइंट Docker संस्करण 1.9.1 का उपयोग कर रहा हूं, बिल्ड a34a1d5। मैं aws ecr get-login --region us-east-1docker login क्रेडिट पाने के लिए उपयोग करता हूँ । फिर मैं उन क्रेडिट के साथ सफलतापूर्वक लॉगिन करता हूं:
docker login -u AWS -p XXXX -e none https://####.dkr.ecr.us-east-1.amazonaws.com
WARNING: login credentials saved in /Users/ar/.docker/config.json
Login Succeeded
लेकिन जब मैं अपनी छवि को आगे बढ़ाने की कोशिश करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:
$ docker push ####.dkr.ecr.us-east-1.amazonaws.com/image:latest
The push refers to a repository [####.dkr.ecr.us-east-1.amazonaws.com/image] (len: 1)
bcff5e7e3c7c: Preparing
Post https://####.dkr.ecr.us-east-1.amazonaws.com/v2/image/blobs/uploads/: no basic auth credentials
मुझे यकीन है कि aws उपयोगकर्ता सही अनुमति थी। मैंने यह भी सुनिश्चित किया कि रिपॉजिटरी ने उस उपयोगकर्ता को इसे पुश करने की अनुमति दी। बस यह सुनिश्चित करने के लिए कि सभी उपयोगकर्ताओं को पूर्ण पहुँच की अनुमति देने के लिए मैंने रजिस्ट्री सेट नहीं की है। कुछ भी "no basic auth credentials"त्रुटि नहीं बदलता है । मुझे नहीं पता कि सभी ट्रैफ़िक एन्क्रिप्ट किए जाने के बाद से इसे कैसे डीबग करना शुरू करना है।
अपडेट करें
इसलिए मेरे पास होमर सिम्पसन डी'ओएच का क्षण था जब मुझे अपनी समस्या का मूल कारण पता चला। मेरे पास कई AWS खातों तक पहुंच है। भले ही मैं aws configureउस खाते के लिए अपनी साख सेट करने के लिए उपयोग कर रहा था , जहां मैंने अपनी रिपॉजिटरी aws cli सेटअप की थी वास्तव में पर्यावरण चर AWS_ACCESS_KEY_IDऔर का उपयोग कर रहा था AWS_SECRET_ACCESS_KEY। इसलिए जब मैंने किया तो aws ecr get-loginयह गलत खाते के लिए एक लॉगिन लौटा रहा था । मैं यह नोट करने में विफल रहा कि जब तक मैं अभी प्रस्तावित प्रस्तावों में से कुछ को आज़माने के लिए खाता संख्या अलग नहीं हो गया था। जब मैं पर्यावरण चर निकालता हूं तो सब कुछ सही ढंग से काम करता है। मुझे लगता है कि कहानी का आदर्श वाक्य है यदि आप इस त्रुटि को मारते हैं, तो सुनिश्चित करें कि आप जिस रिपॉजिटरी में लॉग इन कर रहे हैं वह उस टैग से मेल खाता है जिसे आपने छवि पर लागू किया है।