นักเทียบท่าเข้าสู่ระบบชวเลขธงที่ไม่รู้จัก: 'e'


121

ฉันเพิ่งอัปเดตเวอร์ชันนักเทียบท่าของฉันและพบคำสั่งนั้น

aws ecr get-login

ไม่ทำงานอีกต่อไป มีข้อผิดพลาด:

ธงชวเลขที่ไม่รู้จัก: "e" in -e " ดูเหมือนว่านักเทียบท่าไม่รองรับแฟล็ก -e อีกต่อไป

มีวิธีแก้ไขปัญหานี้หรือไม่?

รุ่นที่ติดตั้ง:

aws-cli/1.11.111 Python/2.7.10 Darwin/16.6.0 botocore/1.5.74

Docker version 17.06.0-ce-rc5, build b7e4173

1
และนี่คือเหตุผลที่เราไม่ใช้ตัวเลือกสั้น ๆ ในอินเทอร์เฟซสคริปต์และสิ่งอื่นใดที่อาจขวางหูผู้ใช้ที่จำตัวเลือกบรรทัดคำสั่งทั้งหมดของเครื่องมือที่ใช้ไม่ได้อย่างสมบูรณ์ มันอาจจะไม่ตรงประเด็น แต่ฉันคิดว่าสิ่งสำคัญคือต้องเน้นย้ำเพราะนักพัฒนาซอฟต์แวร์ทุกคนที่เจอคำถามเช่นนี้จำเป็นต้องทำการเชื่อมต่อนี้และหลายคนก็จะไม่ทำเช่นนั้น (เพราะถ้าตัวเลือกที่ถูกส่งไปยังนักเทียบท่าเป็นสิ่งที่ชอบ--emailมันจะลดความพยายามและเพิ่มโอกาสในการค้นหาผู้ใช้--no-include-emailด้วยตัวเอง)
mtraceur

คำตอบ:


201

เพิ่มสิ่งนี้ในการโทรของคุณ

--no-include-email

นี่คือไวยากรณ์ใหม่ที่ถูกต้อง:

aws ecr get-login   ${normal_params_here}   --no-include-email
aws ecr get-login   --region us-east-1      --no-include-email  # for example

ตัวเลือกใหม่นี้พร้อมใช้งานใน AWS CLI ในเวอร์ชัน 1.11.91 ที่เผยแพร่เมื่อ 05/23/2017 ... ออกสิ่งนี้เพื่ออัปเกรด:

pip install --upgrade awscli

ดูรายละเอียดที่นี่

https://github.com/docker/for-mac/issues/1762

https://github.com/aws/aws-cli/issues/1926

อ้างถึง:

"คุณควรได้รับ อีเมลแจ้งเตือนจาก Amazon ประมาณวันที่ 23 พฤษภาคม 2017 เกี่ยวกับการ--no-include-emailตั้งค่าสถานะใหม่aws ecr get-loginสำหรับความเข้ากันได้กับ [Docker] 17.06.0"

ตัวอย่างเช่นหลังจากที่ฉันออกติดตาม

aws ecr get-login   --region us-east-1      --no-include-email  

มันแสดงให้ฉันเห็นผลลัพธ์ต่อไปนี้

docker login -u AWS -p foobarZUFtSzg4SDBUa0lDSEpTNUQ5M3pDVDhHNi9jS2s3SExhQWpheEVMWTlmY0pNWlphOEN5M2hJTUFoMDlJczd0anVoRk9CKzE1ODdBdmQ1ZzRNR3pKa1lMZ2NTOGo4Mk1sZGlwdDRjQlJyOERvaDFiaEt6TWRlVHkzalA2Um5RSTBNNW5qRW9WL1ZlaEhxMTV4bjl5aXQrV1NXMnp1NWNwek1JQWVxRjd0YWhZWkxxYmdRVjdldE9LQUY3dW5OWFFSM20vY0x4L1ZKWW9BZzlNM0wrQy8vdENEQXRXMFpvTTNrVXNxTHg4MEFQQXJRV08yZ1BRb0VLcHo1ZE1sc1JLS25hWit2eGVzODdlUFZ3OS9tT29BV0pEUzBSWUx0ellsUUVKNUpadXlkbXlnL2owL2N5VUJaSWNpajJaVExrYTlwRm9STkVhejVZKzhBU3N4S1c4RWNIOThuNi8xcDRDU09lcnlQUjUwYnRGZ1RtWk5LNVRTaW92ZXhNYUs2RFpLTU83MHgvYlpRcXgxYWh5U2FFTXR5RlMxempqVlFva3JVeTYrQVMwL09pQ2NRV1o2S01kMDc5akNDdE5YakFzamNsUTUzZVE4TUFUTWIrYTBBNFlIaDJNcFJ2RjU5dWNHS2tYUkl4WGNVY1Zpc2l4NmJNaEo4dEZsK0hEem5PSXRHRmh3b3lZV093OEw3dFlwbFFTSEFTaVdsemRSVTNvQmREQ2FCZys3R09BUW96SWxsWnV2Yk51cG1qWkFzMWE5MzdMelQ0Y25lemYwbWZUSFBDVVpzYzQ2Wk1jWkl4MjMrU0lpL3g3aFZ1NXJzcklVVFJTd1UwRUpLbFNIUkZKZ0xqZ0R1bnVrSGlrY0pnZEhseDlKRmloWEM3REF6bDByMkc4LzN1SG4xeEFCdWVlN2tUU2dsS0lTcW45ejI3eUlCc3BjOUhxU2JuUzNTOGVJamJvdmdaQWNNL1R2YUVTTEdsM0hrUnlXb04zUVhFM2NWa1poR1ZDZEJCTlRiekkvMUlLVENnNnlKNTVibThMTE0rcEdFQ1h1M1JwWWZUU3VLOVc0NytQVkJUSWtsNnhrd0Jobm9nZ1MwUkYyc2xNb1F6S08zZHhva24zN0dSS1hoOXhSbG85RVlWOHZLRzVzbjdhbnhpby9EL3ZDbHFXWTlLRGVwOGxMK0NhR3lpbDRHZ3JwWmtWampaaExzQ1cyTWk0L3NXUTEyV0ZCR0JnOSIsImRhdGFrZXkiOiJBUUVCQUhod20wWWFJU0plUnRKbTVuMUc2dXFlZWtYdW9YWFBlNVVGY2U5UnE4LzE0d0FBQUg0d2ZBWUpLb1pJaHZjTkFRY0dvRzh3YlFJQkFEQm9CZ2txaGtpRzl3MEJCd0V3SGdZSllJWklBV1VEQkFFdU1CRUVESnpKWXZhbXBFRkFSVUx5bUFJQkVJQTcwZk1ZUlU4bG9RVnRwMWJJUHRoZktTOFMzZVpZNS8rT0orL0RmSjZXNVpiK0p0TURXZmZ5Rm9vc0gzMDFVWS9OQ1lzb2hWM1FER2E3NmZ3PSIsInZlcnNpb24iOiIyIiwidHlwZSI6IkRBVEFfS0VZIiwiZXhwaXJhdGlvbiI6MTU2NDkxNTYyOH0= https://092412696969.dkr.ecr.us-east-1.amazonaws.com

ดังนั้นเพื่อทำการล็อกอินนักเทียบท่าไปยังที่เก็บ aws คัดลอก N วางด้านบนกลับเข้าไปในเทอร์มินัลเดียวกันตาม ...

 docker login -u AWS -p foobarZUFtSzg4SDBUa0lDSEpTNUQ5M3pDVDhHNi9jS2s3SExhQWpheEVMWTlmY0pNWlphOEN5M2hJTUFoMDlJczd0anVoRk9CKzE1ODdBdmQ1ZzRNR3pKa1lMZ2NTOGo4Mk1sZGlwdDRjQlJyOERvaDFiaEt6TWRlVHkzalA2Um5RSTBNNW5qRW9WL1ZlaEhxMTV4bjl5aXQrV1NXMnp1NWNwek1JQWVxRjd0YWhZWkxxYmdRVjdldE9LQUY3dW5OWFFSM20vY0x4L1ZKWW9BZzlNM0wrQy8vdENEQXRXMFpvTTNrVXNxTHg4MEFQQXJRV08yZ1BRb0VLcHo1ZE1sc1JLS25hWit2eGVzODdlUFZ3OS9tT29BV0pEUzBSWUx0ellsUUVKNUpadXlkbXlnL2owL2N5VUJaSWNpajJaVExrYTlwRm9STkVhejVZKzhBU3N4S1c4RWNIOThuNi8xcDRDU09lcnlQUjUwYnRGZ1RtWk5LNVRTaW92ZXhNYUs2RFpLTU83MHgvYlpRcXgxYWh5U2FFTXR5RlMxempqVlFva3JVeTYrQVMwL09pQ2NRV1o2S01kMDc5akNDdE5YakFzamNsUTUzZVE4TUFUTWIrYTBBNFlIaDJNcFJ2RjU5dWNHS2tYUkl4WGNVY1Zpc2l4NmJNaEo4dEZsK0hEem5PSXRHRmh3b3lZV093OEw3dFlwbFFTSEFTaVdsemRSVTNvQmREQ2FCZys3R09BUW96SWxsWnV2Yk51cG1qWkFzMWE5MzdMelQ0Y25lemYwbWZUSFBDVVpzYzQ2Wk1jWkl4MjMrU0lpL3g3aFZ1NXJzcklVVFJTd1UwRUpLbFNIUkZKZ0xqZ0R1bnVrSGlrY0pnZEhseDlKRmloWEM3REF6bDByMkc4LzN1SG4xeEFCdWVlN2tUU2dsS0lTcW45ejI3eUlCc3BjOUhxU2JuUzNTOGVJamJvdmdaQWNNL1R2YUVTTEdsM0hrUnlXb04zUVhFM2NWa1poR1ZDZEJCTlRiekkvMUlLVENnNnlKNTVibThMTE0rcEdFQ1h1M1JwWWZUU3VLOVc0NytQVkJUSWtsNnhrd0Jobm9nZ1MwUkYyc2xNb1F6S08zZHhva24zN0dSS1hoOXhSbG85RVlWOHZLRzVzbjdhbnhpby9EL3ZDbHFXWTlLRGVwOGxMK0NhR3lpbDRHZ3JwWmtWampaaExzQ1cyTWk0L3NXUTEyV0ZCR0JnOSIsImRhdGFrZXkiOiJBUUVCQUhod20wWWFJU0plUnRKbTVuMUc2dXFlZWtYdW9YWFBlNVVGY2U5UnE4LzE0d0FBQUg0d2ZBWUpLb1pJaHZjTkFRY0dvRzh3YlFJQkFEQm9CZ2txaGtpRzl3MEJCd0V3SGdZSllJWklBV1VEQkFFdU1CRUVESnpKWXZhbXBFRkFSVUx5bUFJQkVJQTcwZk1ZUlU4bG9RVnRwMWJJUHRoZktTOFMzZVpZNS8rT0orL0RmSjZXNVpiK0p0TURXZmZ5Rm9vc0gzMDFVWS9OQ1lzb2hWM1FER2E3NmZ3PSIsInZlcnNpb24iOiIyIiwidHlwZSI6IkRBVEFfS0VZIiwiZXhwaXJhdGlvbiI6MTU2NDkxNTYyOH0= https://092412696969.dkr.ecr.us-east-1.amazonaws.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/pualu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

ตอนนี้คุณลงชื่อเข้าใช้ที่เก็บ aws docker


4
โปรดทราบว่าอาจต้องอัปเดตawscli เป็นเวอร์ชันล่าสุด
broofa

3
sudo pip install
Phil Strong

1
พวกคุณช่วยฉันไว้ <3
DaniG2k

1
คนที่ชอบคือผู้ช่วยวิญญาณที่น่าสงสารด้วยกำหนดเวลาที่นี่ ขอบคุณ
Alfonso Pérez

1
ด้วยเหตุผลบางประการการรันpip install --upgrade awscliไม่ได้อัปเดต aws และ--no-include-emailไม่รู้จักตัวเลือก ฉันต้องใช้คำตอบจาก amazia ด้านล่าง
Jonathan Morales Vélez

18

หากด้วยเหตุผลบางประการที่คุณไม่สามารถอัปเกรดเวอร์ชัน awscli ได้คุณสามารถปรับแต่งสตริงเล็กน้อยเพื่อให้ใช้งานได้กับคุณ

ตัวอย่างเช่น:

$(aws ecr get-login --region eu-central-1 | sed -e 's/-e none//g')

สิ่งนี้จะทิ้งแฟล็ก -e ที่ไม่รองรับและคุณควรเข้าสู่ระบบได้


1
มันได้ผลสำหรับฉัน ยังอยากรู้ว่าทำไมมันถึงล้มเหลวเพราะ '-e' ของ
Shree Prakash

@ShreePrakash เป็นโปรแกรม cli รุ่นเก่ากว่า
Alexander Mills

7

ฉันมีปัญหาเดียวกัน แต่ตามคำตอบของ Scott Stensland ไม่สามารถแก้ปัญหาได้

ในกรณีที่เกิดขึ้นกับบุคคลอื่นการปล่อย '-e none' ออกจากคำสั่งจะช่วยแก้ปัญหาได้


1
ทำงานให้ฉัน ..
codersofthedark

คำตอบที่คุณอ้างอิงให้เห็นเพิ่ม--no-include-emailไปยังecr loginคำสั่ง ผลของสิ่งนี้คือการลดลงอย่างแม่นยำ-e noneจากdocker loginคำสั่งที่ส่งออก
dsclose

1

เรียกใช้คำสั่งเข้าสู่ระบบ

aws ecr get-login --region us-west-2

จากนั้นลบแฟล็กและค่า-e noneออกจากคำสั่งผลลัพธ์ สิ่งที่คุณวิ่งจะเป็นอย่างไร ...

docker login -u AWS -p <long password hash> https://<image ID>.dkr.ecr.us-west-2.amazonaws.com 

1
เพิ่ม--no-include-email ไปยังecr get-loginคำสั่งละเว้น-e noneจากจากการส่งออก
dsclose

1

หากคุณต้องการหลีกเลี่ยงการรีเฟรชโทเค็นการตรวจสอบสิทธิ์ด้วยตนเองaws ecr get-loginคุณสามารถติดตั้งตัวช่วยข้อมูลรับรอง Amazon ECRแทนได้ ผู้ช่วยเหลือข้อมูลรับรองจะดูแลการดึงและอัปเดตโทเค็นโดยอัตโนมัติดังนั้นคุณจึงไม่จำเป็นต้องรีเฟรชด้วยตัวเอง แพ็คเกจมีให้สำหรับ Debian (Buster หรือใหม่กว่า), Ubuntu (19.10 หรือใหม่กว่า), Amazon Linux 2, Mac OS (ผ่าน Homebrew) และระบบปฏิบัติการอื่น ๆ อีกสองสามระบบหรือคุณสามารถดาวน์โหลดไบนารีรีลีสได้จากหน้ารีลีส

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.