ছবিটি অ্যামাজন ইসিআর-তে ঠেলাতে পারে না - "কোনও মৌলিক লেখকের শংসাপত্র নেই" দিয়ে ব্যর্থ হয়


172

আমি একটি ডোকর চিত্রটি একটি অ্যামাজন ইসিআর রেজিস্ট্রিতে ঠেলে দেওয়ার চেষ্টা করছি। আমি ডকার ক্লায়েন্ট ডকার সংস্করণ 1.9.1, বিল্ড ব্যবহার করছি a34a1d5। আমি aws ecr get-login --region us-east-1ডকার লগইন ক্রেডিট পেতে ব্যবহার করি । তারপরে আমি সেই ক্রেডিটগুলির সাথে সফলভাবে লগইন করেছি:

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

আমি নিশ্চিত হয়েছি যে আউস ব্যবহারকারীটির সঠিক অনুমতি ছিল। আমি এটিও নিশ্চিত করেছিলাম যে ভান্ডারগুলি সেই ব্যবহারকারীকে এটির দিকে চাপ দিতে দেয়। কেবল এটি নিশ্চিত করার জন্য যে সমস্ত ব্যবহারকারীকে সম্পূর্ণ অ্যাক্সেসের অনুমতি দেওয়ার জন্য আমি রেজিস্ট্রি সেট করেছি। কিছুই "no basic auth credentials"ত্রুটি পরিবর্তন করে না । সমস্ত ট্র্যাফিক এনক্রিপ্ট করা হওয়ায় এটি কীভাবে ডিবাগ করা শুরু করবেন তা আমি জানি না।

হালনাগাদ

সুতরাং আমি যখন আমার সমস্যার মূল কারণটি উপলব্ধি করলাম তখন আমার কিছুটা হোমার সিম্পসন ডি'ও হয়েছে। আমার একাধিক AWS অ্যাকাউন্টে অ্যাক্সেস রয়েছে। যদিও আমি ব্যবহার করছিলেন aws configureঅ্যাকাউন্ট যেখানে আমি সেটআপ আমার সংগ্রহস্থলের ছিল আওস CLI আসলে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করছিলেন জন্য আমার পরিচয়পত্র সেট করতে AWS_ACCESS_KEY_IDএবং AWS_SECRET_ACCESS_KEY। সুতরাং যখন আমি aws ecr get-loginএটি করছিলাম ভুল অ্যাকাউন্টের জন্য একটি লগইন ফিরে। প্রস্তাবিত উত্তরগুলির কয়েকটি চেষ্টা করতে এখনই ফিরে না যাওয়া পর্যন্ত অ্যাকাউন্ট নম্বরগুলি আলাদা ছিল তা আমি লক্ষ্য করতে ব্যর্থ হয়েছি। আমি যখন পরিবেশের ভেরিয়েবলগুলি সরিয়ে ফেলি তখন সবকিছু সঠিকভাবে কাজ করে। আমার ধারণা, গল্পটির মূলমন্ত্রটি হল আপনি যদি এই ত্রুটিটি আঘাত করেন তবে নিশ্চিত হয়ে নিন যে আপনি যে ভাণ্ডারে লগইন করছেন সেটিকে আপনি চিত্রটিতে প্রয়োগ করা ট্যাগটির সাথে মেলে।


10
আপনার সেই আপডেটটি বোল্ড, আন্ডারলাইন এবং ইটালিকাইজড করা উচিত। আমারও ঠিক সেই হোমার সিম্পসন মুহুর্তটি ছিল। ধন্যবাদ!
মাইক 14

এটি সঙ্কুচিত করার জন্য ধন্যবাদ! তুমি আক্ষরিকভাবে আমার দিনটি বাঁচিয়েছ!
সিমোনসো

2
সংগ্রহস্থল উপস্থিত না থাকলে একই ত্রুটি দেওয়া হয়। আপনি সঠিক অঞ্চলে রেপো তৈরি করেছেন কিনা তা পরীক্ষা করে দেখুন।
ইলিয়া সিডোরেনকো


নোট করুন যে আপনি একাধিক ব্যবহারকারীর প্রোফাইলগুলি পরিচালনা করতে আপনার আউস ক্লিপটি
পিটার বার্গ

উত্তর:


111

যদি আপনি চালনা করেন তবে $(aws ecr get-login --region us-east-1)এটি আপনার জন্য সম্পন্ন হবে


17
আপনি কিংবদন্তি। এডাব্লুএস গাইডের শেল কমান্ডের সাথে দ্বিতীয় ধাপ 2 ছাড়া 5 টি পদক্ষেপ ছিল যা কেবলমাত্র "পূর্ববর্তী ধাপে ফিরে আসা ডকার লগইন কমান্ড চালান" বলে থাকে। আমার ধারণা আমার মতো পুরো লোকেরা কেবল শেল কমান্ডের দিকে মনোনিবেশ করে এবং নির্দেশটি সঠিকভাবে পড়েনি
টিয়েন দিনহ

টাইম মেশিন - command () এ আউস কমান্ড মোড়ানো কেন লগইনকে সঠিকভাবে সফল করতে দেয়?
VtoCorleone

6
@ ভিটোকর্লিওন কারণ আউস কমান্ডটি স্ট্যান্ডার্ড আউটপুটে একটি ডকার কমান্ড প্রিন্ট করে। যদি আপনি সেই স্ট্রিংটি $ () এ মুড়ে ফেলে থাকেন তবে এটি শেল দ্বারা ব্যাখ্যা করা docker loginহবে এবং কমান্ডটি চালানো হবে।
ওটাভিও ম্যাসাডো

2
। (aws ecr get-login --region us-পশ্চিম-2) অজানা শর্টহ্যান্ড পতাকা: 'ই' ইন-ই 'ডকার লগইন - সহায়তা' দেখুন।
আশীষ কার্পে

23
যদি আপনি "অজানা শর্টহ্যান্ড পতাকা: 'ই'" পাচ্ছেন, আপনাকে অবশ্যই এই জাতীয় কমান্ডটি চালাতে হবে - নন-অন্তর্ভুক্ত ইমেল পতাকা: ws (এউএসসিআর - লগ-লগইন - মার্কিন যুক্তরাষ্ট্র-পূর্ব -১ -
ট্রেনটন

57

আমার ক্ষেত্রে এটি উইন্ডোজের জন্য ডকার এবং উইন্ডোজ শংসাপত্র ব্যবস্থাপকের জন্য তাদের সমর্থন সহ একটি বাগ ছিল।

আপনার খুলুন ~/.docker/config.jsonএবং "credsStore": "wincred"এন্ট্রি সরান ।

এর ফলে config.jsonসরাসরি শংসাপত্রগুলি লেখা হবে । এরপরে আপনাকে আবার লগ ইন করতে হবে।

গিটহাবের # 22910 এবং # 24968 টিকিটের মাধ্যমে আপনি এই বাগটি ট্র্যাক করতে পারেন ।


ধন্যবাদ - উইন্ডোজ 10 এ কাজ করেছে। কনফিগারেশন থেকে সেই সম্পত্তিটি সরিয়ে ফেলার পরে এবং ডকার লগইন কমান্ডটি আবার চালানোর পরে কনফিগারেশন ফাইলটি শংসাপত্র সহ আপডেট হয়েছিল এবং কাজটি পুশ করে।
ক্যামেরন

আমি কনফিগার ফাইলটি খুঁজে পাচ্ছি না। আপনি দয়া করে আমাকে config.json ফাইলের অবস্থান সম্পর্কে পরামর্শ দিতে পারেন?
রামাশঙ্কর ত্রিপাঠি

@ রামাশঙ্কর ত্রিপাঠি উত্তরটি উত্তরে রয়েছে। আমি নিশ্চিত না যে আমি কীভাবে পরিষ্কার হতে পারব।
ডের হচস্টাপলার

@ অলিভারসালজবুর্গ উত্তরের জন্য ধন্যবাদ। আসলে আমার ডকার ইনস্টলেশন ডিরেক্টরিতে config.json ফাইল নেই j
রামাশঙ্কর ত্রিপাঠি

@ রামশঙ্কর ত্রিপাঠি ~/.dockerমানে .dockerআপনার হোম ডিরেক্টরিতে। চেষ্টা করুন%HOMEDRIVE%%HOMEPATH%\.docker
ডের হচস্টাপলার

50

আপনি যদি প্রোফাইল ব্যবহার করেন তবে পাস করতে ভুলবেন না --profile=XXX করতে aws ecr get-login


27

আমি এই সমস্যা ছিল। আমার সাথে যা ঘটেছিল তা হ'ল আমি দৌড়ানোর পরে আমাকে যে আদেশটি ফিরে পেয়েছিল তা চালানো ভুলে গিয়েছিলাম

aws ecr get-login --region ap-southeast-2

এই কমান্ডটি একটি বড় অঙ্কুর ফিরেছে, এতে docker loginকমান্ডটি ঠিক আছে! আমি বুঝতে পারিনি। এটি এমন কিছু ফেরত দেওয়া উচিত:

docker login -u AWS -p <your_token_which_is_massive> -e none <your_aws_url>

এই আদেশটি অনুলিপি করুন এবং পেস্ট করুন এবং তারপরে আপনার ডকার পুশ কমান্ডটি চালান যা দেখতে এরকম কিছু দেখাচ্ছে:

docker push 8888888.blah.blah.ap-southwest-1.amazonaws.com/dockerfilename

1
সেই ব্লব প্রতিক্রিয়া কী তা আমার কোনও ধারণা ছিল না তাই আমি এটিকে উপেক্ষা করেছি। হা হা। এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ!
duyn9uyen 3

14

অনুমতিগুলি না খোলার পরেও এটি কাজ করা উচিত ছিল। ডকুমেন্টেশন দেখুন: ব্যক্তিগত রেজিস্ট্রি প্রমাণীকরণ

[সম্পাদনা: আসলে, দ্বিতীয় পরীক্ষা করার সময় আমারও অনুমতি সংক্রান্ত সমস্যা ছিল। দেখুন ডাবর অ্যাডাব্লুএস ইসির প্রাইভেট রেপোতে ত্রুটিযুক্ত জেএসওএন ব্যর্থ হয়েছে )]

তবুও আমার একই সমস্যা ছিল; কেন জানি না, তবে আমি সাফল্যের সাথে টোকেন পাওয়ার জন্য ডক্সগুলিতে বর্ণিত আরও দীর্ঘ-বায়ুশিত লেখার প্রক্রিয়াটি সফলভাবে ব্যবহার করেছি

এডাব্লুএস সিএলআই এবং ডকার সংস্করণ:

$ aws --version
aws-cli/1.9.17 Python/2.7.6 Linux/3.16.0-38-generic botocore/1.3.17
$ docker --version
Docker version 1.9.1, build a34a1d5

লেখক টোকেন ('ডকার পাসওয়ার্ড') পান।

aws ecr get-authorization-token --region us-east-1 --output text \
    --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2

দ্রষ্টব্য: আমার ~ / .aws / config একটি আলাদা ডিফল্ট অঞ্চল নির্দিষ্ট করে, তাই আমার স্পষ্টভাবে সেট করা দরকার --region us-east-1

ইন্টারেক্টিভভাবে লগ ইন করুন ( ############আপনার AWS অ্যাকাউন্ট আইডিতে পরিবর্তন করুন ):

docker login -u AWS https://############.dkr.ecr.us-east-1.amazonaws.com/
password: <paste the very long password from above>
email: <I left this blank>

একটি চিত্র পুশ করুন (ধরে নিবেন আপনি একটি ডকারের চিত্র তৈরি করেছেন test):

docker tag test:latest ############.dkr.ecr.us-east-1.amazonaws.com/test:latest
docker push ############.dkr.ecr.us-east-1.amazonaws.com/test:latest
The push refers to a repository [910732017890.dkr.ecr.us-east-1.amazonaws.com/test] (len: 1)
d5122f58a2e1: Pushed 
7bddbca3b908: Pushed 
latest: digest: sha256:bc0b521fd398bd1a2ef58a289dcb910334608723fd570e7bddb36eacd0060363 size: 4378

আপনি কিভাবে খুব দীর্ঘ পাসওয়ার্ড পেস্ট করেছেন ??? খনি বিভিন্ন লাইন। আমি উইন্ডোজ ডকার কুইকস্টার্ট টার্মিনালটি ব্যবহার করছি, যার ভাল কপি / পেস্ট করার ক্ষমতা নেই বলে মনে হচ্ছে বা সম্ভবত আমি এটি বের করতে পারি না।
ডেভিড

অন্য যে কারও কাছে অবাক হওয়ার জন্য, আমাকে কেবল হোয়াইটস্পেস সহ পুরো জিনিসটি চিহ্নিত এবং অনুলিপি করতে হবে এবং তারপরে নোটপ্যাডে পেস্ট করতে হবে। সেখান থেকে, আমি লাইন ব্রেকগুলি সরিয়ে, এবং সমস্ত কিছু আবার খুলি এবং তারপরেই আমি টার্মিনাল কমান্ড লাইনে পেস্ট করতে পারি। কাজ করেছে।
ডেভিড

আপনি যদি পাওয়ারশেল ব্যবহার করছেন তবে বৈশিষ্ট্য> বিকল্প ট্যাবে যান এবং "লাইন মোড়ানো নির্বাচন সক্ষম করুন" নির্বাচন করুন। এইভাবে, আপনি নোটপ্যাডে ম্যানুয়ালি অনুলিপি না করে, নতুন লাইন মুছে ফেলা ছাড়া মোড়ানো রেখাগুলি নির্বাচন করতে ক্লিক করতে এবং টেনে আনতে পারেন
আদর্শ

আমি প্রায় 10 বছরে একটি উইন্ডোজ মেশিন স্পর্শ করতে পারি নি, তবে আপনি সর্বদা কোনও ফাইলের aws ecr get-authorization-token > config.json
স্টাডাউটকে


12

হালনাগাদ

যেহেতু এডাব্লুএস সিএলআই সংস্করণ 2 - হ্রাস aws ecr get-loginকরা হয়েছে এবং সঠিক পদ্ধতি aws ecr get-login-password

সুতরাং সঠিক এবং আপডেট উত্তর নিম্নলিখিত: docker login -u AWS -p $(aws ecr get-login-password --region us-east-1) xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com


আমি পেয়েছিunknown flag: --region
কিট্টু

11

এটি যদি কাউকে সহায়তা করে ...

আমার সমস্যাটি হ'ল আমাকে --profileশংসাপত্রগুলির ফাইল থেকে সঠিক প্রোফাইলের সাথে প্রমাণীকরণের জন্য বিকল্পটি ব্যবহার করতে হয়েছিল।

এরপরে, আমি --region [region_name]কমান্ডটি বাদ দিয়েছিলাম, এটি "কোনও মৌলিক লেখার শংসাপত্রগুলি" ত্রুটিও দেয় ।

আমার জন্য সমাধানটি আমার আদেশটি এ থেকে পরিবর্তন করছিল:

aws ecr get-login

এটি:

aws --profile [profile_name] ecr get-login --region [region_name]

উদাহরণ:

aws --profile foo ecr get-login --region us-east-1

আশা করি যে কাউকে সাহায্য করবে!


1
তুমি আমাকে বাঁচালে! আমি আমার আওস প্রোফাইলটি AWS_PROFILE=myprofile aws ecr get-loginএটির মতো ব্যবহার করছিলাম এবং এটি কার্যকর হয়নি তবে --profileযুক্তির সাথে আওস প্রোফাইলটি প্রবর্তন করায় কৌশলটি তৈরি হয়!
কলো ঘিদিনি

8

উইন্ডোজে উইনক্রেড শংসাপত্র ব্যবস্থাপকটিতে একটি পরিচিত বাগ রয়েছে। উত্পন্ন লগইন কমান্ড থেকে 'https: //' সরানো এটি সমাধান করে।

docker login -u AWS -p <password> <aws_account_id>.dkr.ecr.<region>.amazonaws.com

পরিবর্তে

docker login -u AWS -p <password> https://<aws_account_id>.dkr.ecr.<region>.amazonaws.com

আরও দেখুন সমস্যা সমাধান পাতা


8

আমি একই সমস্যা অভিজ্ঞতা।

নতুন এডাব্লুএস শংসাপত্রগুলি (অ্যাক্সেস কী) তৈরি করা এবং নতুন শংসাপত্রগুলির সাথে এডাব্লুএস সিএলআই পুনরায় কনফিগার করা সমস্যার সমাধান করেছে।

এর আগে, aws ecr get-login --region us-east-1অবৈধ ইসি রেজিস্ট্রি URL সহ জেনারেট ডকার লগইন কমান্ড।


আমার ক্ষেত্রেও তাই হয়েছিল। ধন্যবাদ!
গ্রেন্দ্রকে

এটা আমার সমস্যা ছিল। আমার যে সমস্ত আওয়াজ পরিচালনা করছিলাম তার চেয়ে আমার আলাদা AWS CLI শংসাপত্রগুলি ~ / .aws / শংসাপত্রগুলিতে সঞ্চিত ছিল। নতুন শংসাপত্র এবং সেটিং সেটিং পুনরায় তৈরি।
মার্টিন আলজেস্টেন

5

আমার এই সমস্যাটি একটি অন্য কারণের সাথে ছিল: আমার AWS অ্যাকাউন্ট (ক্লায়েন্টের ইসিআর রেজিস্ট্রি) এর সাথে সম্পর্কিত নয় এমন একটি রেজিস্ট্রিতে আমাকে ধাক্কা দিতে হবে। arn:aws:iam::{AWS ACCT #}:user/{Username}অধ্যক্ষ হিসাবে আমার আইএএম আইডি (উদাহরণস্বরূপ ) যোগ করে ক্লায়েন্ট আমাকে রেজিস্ট্রির অনুমতি ট্যাবের অধীনে অ্যাক্সেস দিয়েছিলেন । আমি স্বাভাবিক পদক্ষেপগুলি দিয়ে লগইন করার চেষ্টা করেছি:

$(aws ecr get-login --region us-west-2 --profile profilename)
docker push {Client AWS ACCT #}.dkr.ecr.us-west-1.amazonaws.com/imagename:latest

যার ফলস্বরূপ ফলাফল হয়েছিল no basic auth credentialsযেমনটি দেখা যাচ্ছে , আপনার লগইন সম্পর্কিত রেজিস্ট্রিটির জন্যaws ecr get-login আপনাকে ইসিআর-এ লগ ইন করে , যা পূর্ববর্তী ক্ষেত্রে অনুধাবন করে। সমাধানটি aws ecr get-loginকোন রেজিস্ট্রি (গুলি) আপনি লগ ইন করতে চান তা জানাতে হবে to

$(aws ecr get-login --region us-west-2 --profile profilename --registry-ids {Client AWS ACCT #})

এর পরে, docker pushঠিক কাজ করে।


এইবার বুঝতে পারছি. কিন্তু আপনি কি পাস করা উচিত --profile? আমার একটি ব্যক্তিগত অ্যাকাউন্ট আছে তবে আমি একটি কোম্পানির অ্যাকাউন্টে চাপ দেওয়ার চেষ্টা করছি। অন্য কথায়, আমি কোথায় সন্ধান করবprofilename
সিপরিয়ান টমোইগা

1
@ সিপ্রিয়ানটোমিয়াগă আপনি কেবলমাত্র এতে অন্তর্ভুক্ত থাকতে হবে যদি আপনি নামযুক্ত প্রোফাইল ব্যবহার করেন। এখানে দেখুন ডকস.আও.সামাজোন.com
সেরজিও

5
  1. আপনি প্রথমে ইসিআর রেজিস্ট্রি তৈরি করেছেন তা নিশ্চিত করুন।
    তারপরে ইসিআর পুশ কমান্ড নির্দেশাবলী অনুসারে নিম্নলিখিত কমান্ডগুলি কেটে পেস্ট করুন
  2. ডকার লগইন কমান্ড কার্যকর করুন (ম্যাক / লিনাক্সের মধ্যে কাটা-পেস্ট
    eval $(aws ecr get-login --region us-east-1)
    এড়ানো যায় ) - যদি আপনি একাধিক এডাব্লুএস অ্যাকাউন্ট ব্যবহার করেন তবে - প্রোফাইল যুক্ত করুন
    eval $(aws ecr get-login --region us-east-1 --profile your-profile)
  3. docker build -t image-name .
  4. docker tag image-name:latest ############.dkr.ecr.us-east-1.amazonaws.com/image-name:latest
  5. docker push ############.dkr.ecr.us-east-1.amazonaws.com/image-name:latest

ত্রুটির ক্ষেত্রে, নিশ্চিত হয়ে নিন যে আপনি আবার সমস্ত কমান্ড চালাচ্ছেন! আপনি যে শংসাপত্রগুলি ব্যবহার করছেন aws ecr get-loginতা অস্থায়ী এবং মেয়াদোত্তীর্ণ হবে।


আমি কোথায় রাখব your-profile?
অ্যান্ডি

আপনি যদি ডিফল্ট প্রোফাইল ব্যবহার করেন তবে আপনি এটি ছেড়ে দিতে পারেন
জেসন

আমি কীভাবে ডিফল্ট প্রোফাইলটি ব্যবহার করবেন না তা বোঝার চেষ্টা করছিলাম। আমি এটা মূর্ত আউট যদিও, অতিরিক্ত প্রোফাইলে প্রবেশ করা যাবে ~/.aws/configএবং ~/.aws/credentialsফাইল।
অ্যান্ডি

5

আমার ক্ষেত্রে, দৌড়ানোর পরে aws ecr get-login --no-include-email --region *****, আমি কেবলমাত্র সেই আদেশটির আউটপুটটি ফর্মের সাথে docker login -u *** -p ************অনুলিপি করেছি এবং আপনি এটি প্রম্পটে আটকান। ঠেলাঠেলি এগিয়ে গেল।



4

এডাব্লুএস ডকুমেন্টগুলি আপনাকে নিম্নলিখিত কমান্ডটি সম্পাদন করতে বলে (এপ-দক্ষিণ-পূর্ব অঞ্চলের জন্য)

aws ecr get-login --region ap-southeast-2

আমি যখন এই ইস্যুতে ঝাঁপিয়ে পড়েছিলাম তখন এই ডক্সের ভিত্তিতে আমার কাছে পরিষ্কার ছিল না যে আপনাকে এই কমান্ডের ফলাফলটি টার্মিনালে প্রবেশ করতে হবে এবং এটি সম্পাদন করতে হবে need

ক্লিপবোর্ডে ফলাফলটি অনুলিপি করা আমার পক্ষে স্থির হয়েছিল

aws ecr get-login --region ap-southeast-2 | pbcopy

কমান্ড লাইনে ফলাফল আটকান এবং এটি সম্পাদন করুন


4

এই কমান্ড চালানোর পরে:

(aws ecr get-login --no-include-email --region us-west-2)

আউটপুট থেকে ডকার লগইন কমান্ডটি চালান

docker login -u AWS -p epJ....

সেই উপায় যা ডকার ইসিআরে লগইন করে


3

যদি এসিআর লগইন ব্যর্থ হয় তবে এই ত্রুটিটি সাধারণত ছুঁড়ে ফেলা হয়। আমি উইন্ডোজ সিস্টেমটি ব্যবহার করছি এবং আমি প্রথমে ইসিআরতে লগইন করতে প্রশাসক মোডে "পাওয়ারশেল" ব্যবহার করেছি।

Invoke-Expression $(aws ecr get-login --no-include-email)

এটি "লগইন সফল" আউটপুট করা উচিত।


ধন্যবাদ! কেন এই সাহায্য করেছে? আমি ইতিমধ্যে saml2aws ব্যবহার করে লগ ইন করছিলাম।
প্রভাবশালী

2

আমি একই সমস্যার মুখোমুখি হয়েছি এবং আমি যে ভুলটি করেছিলাম তা ভুল রেপো পথটি ব্যবহার করা হয়েছিল

উদাহরণ: docker push xxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/jenkins:latest

উপরের পথে এইখানেই আমি ভুলটি করেছি: এর "dkr.ecr.us-east-1.amazonaws.com"পরিবর্তে "west"। আমি ব্যবহার করছিলাম " east"। একবার আমার ভুল সংশোধন করার পরে আমি ইমেজটিকে সাফল্যের সাথে ধাক্কা দিতে সক্ষম হয়েছি।


2

অ্যাউস-ক্লিমে প্রদত্ত ডকার কমান্ডটি সামান্য দূরে ...

ডকার লগইন ব্যবহার করার সময়, ডকার একটি সার্ভার সংরক্ষণ করবে: আপনার কীচেইন বা ~ / .docker / config.json ফাইলের মধ্যে মূল জুটি

যদি https://7272727.dkr.ecr.us-east-1.amazonaws.comধাক্কা দেওয়ার সময় কীটির জন্য অনুসন্ধানের নীচে কীটি সংরক্ষণ করে তবে ব্যর্থ হবে কারণ ডকার নাম 7272727.dkr.ecr.us-east-1.amazonaws.comনয় এমন একটি সার্ভার সন্ধান করবেhttps://7272727.dkr.ecr.us-east-1.amazonaws.com

লগইন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

eval $(aws ecr get-login --no-include-email --region us-east-1 --profile yourprofile | sed 's|https://||')

কমান্ডটি চালানোর পরে আপনি 'Login Succeeded'বার্তা পাবেন এবং তারপরে আপনি ভাল
হন যে আপনার পুশ কমান্ডটি কাজ করা উচিত


2

: ECR করার Docker ইমেজ ধাক্কা একটি খুব সহজ উপায় নেই আমাজন ECR Docker ক্রেডেনশিয়াল সাহায্যকারী । প্রদত্ত গাইড অনুযায়ী এটি ইনস্টল করুন, ~/.docker/config.jsonনিম্নলিখিত হিসাবে আপনার আপডেট করুন :

{
    "credsStore": "ecr-login"
}

এবং আপনি আপনার চিত্রগুলি ছাড়াই ধাক্কা / টানতে সক্ষম হবেন docker login


এই নিবন্ধে নির্দেশাবলী অনুসরণ করার পরে আমি একই ত্রুটি পেয়েছি।
রাইচাস

1

আমি এই সমস্যাটি ওএসএক্সে চালিত হয়েছি on অলিভার সালজবার্গের প্রতিক্রিয়া আমি দেখেছি এবং আমার। /। ডকার / কনফিগারেশন। জসন পরীক্ষা করেছি। আমার কাছে থাকা বিভিন্ন এডাব্লুএস অ্যাকাউন্ট থেকে এর ভিতরে একাধিক অনুমোদনের শংসাপত্র ছিল। আমি ফাইলটি মুছলাম এবং গেট-লগইন চালানোর পরে আবার এটি কাজ করে।


1

নিশ্চিত হয়ে নিন যে আপনি সঠিক অঞ্চলটি ব্যবহার করেছেন aws ecr get-login, এটি অবশ্যই আপনার অঞ্চলে তৈরি হওয়া অঞ্চলের সাথে মেলে।


1

আমার ইস্যুতে একাধিক AWS শংসাপত্র ছিল; ডিফল্ট এবং দেব। যেহেতু আমি এই কাজের জন্য নিযুক্ত করার চেষ্টা করছিলাম:

$(aws ecr get-login --no-include-email --region eu-west-1 --profile dev | sed 's|https://||')

1

এফডাব্লুআইডাব্লু, ডিবিয়ান 9, ডকার সংস্করণ 18.06.1-সে, বিল্ড e68fc7a:

$(aws ecr get-login | sed 's| -e none | |g')


1

আপনি যদি একাধিক প্রোফাইল ব্যবহার করেন এবং আপনাকে এমন কোনও প্রোফাইলে লগইন করতে হবে যা আপনার ডিফল্ট নয়, আপনার এই কমান্ডটি দিয়ে লগইন করতে হবে:

$(AWS_PROFILE=<YOUR PROFILE> aws ecr get-login --no-include-email --region eu-west-1)

1

নিম্নলিখিত কমান্ডটি আমার পক্ষে কাজ করে:

sudo $(aws ecr get-login --region us-east-1 --no-include-email)

এবং তারপরে আমি এই আদেশগুলি চালাচ্ছি:

sudo docker tag e9ae3c220b23(image_id) aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app

sudo docker push aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app

0

আমরা আজও এই সমস্যাটির মুখোমুখি হয়েছি এবং এই পোস্টে উল্লিখিত সমস্ত কিছুই চেষ্টা করেছি (এডাব্লুএস শংসাপত্রগুলি তৈরি করা ব্যতীত)।

আমরা অবশেষে ডকারকে কেবলমাত্র আপগ্রেড করেই সমস্যার সমাধান করেছি, তারপরে ধাক্কা কাজ করেছিল।

ডকার 1.10.x এর সাথে সমস্যাটির মুখোমুখি হয়েছিল এবং ডকার 1.11.x দিয়ে সমাধান করা হয়েছিল

আশাকরি এটা সাহায্য করবে


0

আপনি যদি সিআই / সিডির উদ্দেশ্যে AWS অ্যাকাউন্টগুলি বিচ্ছিন্ন করে রাখছেন এবং একাধিক এডাব্লুএস অ্যাকাউন্টের মধ্যে একটি ইসিআর রিপোজিটরি ভাগ করে নিচ্ছেন, আপনাকে অবশ্যই পরিবর্তন করতে হবে ~/.docker/config.json ম্যানুয়ালি ।

ধরা যাক আপনার এই সেটআপগুলি রয়েছে:

  1. ECR এর মালিকানা AWS অ্যাকাউন্ট আইডি Account 00000000000000
  2. সিআই সার্ভার এডাব্লুএস অ্যাকাউন্ট আইডি দ্বারা মালিকানাধীন 99999999999999

আপনি যদি aws ecr get-login --region us-west-2 | bashআপনার সিআই সার্ভারের মধ্যে কল করেন তবে ডকার এতে অস্থায়ী শংসাপত্র তৈরি করবে ~/.docker/config.json

{
  "auths": {
    "https://99999999999999.dkr.ecr.us-west-2.amazonaws.com": {
      "auth": "long-token.."
    }
  }
}

তবে আপনি ইসিআর এর অ্যাকাউন্টে ইঙ্গিত করতে চান, তাই আপনার হোস্টের নাম পরিবর্তন করতে হবে।

{
  "auths": {
    "https://00000000000000.dkr.ecr.us-west-2.amazonaws.com": {
      "auth": "long-token.."
    }
  }
}

নোট করুন এই পরিস্থিতি আপনাকে কীভাবে ইসিআর অ্যাক্সেসের অনুমতি দেওয়ার জন্য আইএএম ব্যবহারকারী / নীতি গঠন করে তা নির্ভর করে।


0

আপনাকে নিশ্চিত করতে হবে যে আপনি সঠিক শংসাপত্রগুলি ব্যবহার করে লগ ইন করেছেন, অফিক্যাল ত্রুটির বিবরণ এবং চেকগুলি এখানে দেখুন

http://docs.aws.amazon.com/AmazonECR/latest/userguide/common-errors-docker.html

লিঙ্কে "কোনও মৌলিক প্রমাণীকরণ নয়" ঠিক করা হয়েছে


0
aws ecr get-login --region us-west-1 --no-include-email

এই কমান্ডটি আমাকে লগইন করার জন্য সঠিক কমান্ড দেয়। আপনি যদি "--no-অন্তর্ভুক্ত-ইমেল" ব্যবহার না করেন তবে এটি অন্য একটি ত্রুটি ফেলে দেবে। উপরের কমান্ডের আউটপুটটি এই ডকার লগইনের মতো দেখাচ্ছে - আপনি এডাব্লুএস-পি ********************** খুব বড় ******। এটি অনুলিপি করুন এবং এটি সম্পাদন করুন। এখন এটি "লগইন সফল" প্রদর্শিত হবে। এখন আপনি আপনার চিত্রটি ইসিআর তে ঠেলাতে পারেন।

আপনার এএমআই নিয়মের যে ব্যবহারকারীর জন্য আপনি লগইন করার চেষ্টা করেছেন তার অনুমতি রয়েছে তা নিশ্চিত করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.