đăng nhập docker cờ viết tắt không xác định: 'e'


121

Tôi vừa cập nhật phiên bản docker của mình và phát hiện ra lệnh đó

aws ecr get-login

không hoạt động nữa. Có lỗi:

cờ viết tắt không xác định: 'e' in -e`. Có vẻ như docker không hỗ trợ cờ -e nữa.

Có cách nào để sửa lỗi này?

Các phiên bản đã cài đặt:

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
Và đây là lý do tại sao chúng tôi không sử dụng các tùy chọn ngắn trong giao diện, tập lệnh và bất kỳ thứ gì khác có thể qua mắt những người dùng không nhớ rõ mọi tùy chọn dòng lệnh của các công cụ đang được sử dụng. Nó có thể lạc đề, nhưng tôi nghĩ điều quan trọng cần phải nhấn mạnh, bởi vì mọi nhà phát triển phần mềm khi gặp những câu hỏi như thế này đều cần tạo kết nối này, và quá nhiều người thì không. (Bởi vì nếu tùy chọn được thông qua để Docker là một cái gì đó giống như --email, nó sẽ làm giảm công sức và tăng tỷ lệ cược của người sử dụng khám phá --no-include-emailmột mình.)
mtraceur

Câu trả lời:


201

thêm cái này vào cuộc gọi của bạn

--no-include-email

đây là cú pháp hợp lệ mới:

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

Tùy chọn mới này có sẵn trong AWS CLI kể từ phiên bản 1.11.91 được phát hành vào ngày 23/05/2017 ... vấn đề này để nâng cấp:

pip install --upgrade awscli

xem chi tiết tại đây

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

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

để trích :

"Bạn hẳn đã nhận được thông báo qua email từ Amazon vào khoảng ngày 23 tháng 5 năm 2017 về việc bật --no-include-emailcờ mới aws ecr get-loginđể tương thích với [Docker] 17.06.0"

Ví dụ sau khi tôi phát hành sau

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

nó hiển thị cho tôi kết quả sau

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

vì vậy để hoàn thành đăng nhập docker vào kho lưu trữ aws, hãy sao chép N dán ở trên vào cùng một thiết bị đầu cuối, theo ...

 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

bây giờ bạn đã đăng nhập vào kho lưu trữ aws docker


4
Lưu ý rằng điều này có thể yêu cầu cập nhật awscli lên phiên bản mới nhất.
broofa

3
sudo pip cài đặt --upgrade awscli
Phil Mạnh

1
Các anh đã cứu tôi <3
DaniG2k

1
Những người như đang cứu những linh hồn tội nghiệp có thời hạn ở đây. Cảm ơn
Alfonso Pérez

1
Vì một số lý do chạy pip install --upgrade awsclikhông cập nhật aws và các --no-include-emailtùy chọn không được công nhận. Tôi đã phải sử dụng câu trả lời từ amazia xuống bên dưới
Jonathan Morales Vélez

18

nếu vì lý do nào đó bạn không thể nâng cấp phiên bản awscli, bạn có thể thực hiện một thao tác chuỗi nhỏ để làm cho nó hoạt động với bạn với sed.

ví dụ:

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

điều này sẽ thả cờ -e không được hỗ trợ và bạn sẽ có thể đăng nhập.


1
nó đã làm việc cho tôi. vẫn tò mò muốn biết lý do tại sao nó được falied vì '-e' thứ
Shree Prakash

@ShreePrakash chỉ là một phiên bản cũ hơn của chương trình cli
Alexander Mills

7

Tôi đã gặp vấn đề tương tự nhưng theo câu trả lời của Scott Stensland đã không giải quyết được nó.

Trong trường hợp nó xảy ra với người khác, việc bỏ '-e none' khỏi lệnh sẽ giải quyết được vấn đề.


1
Đã làm cho tôi.. .
coderofthedark

Câu trả lời bạn tham khảo đề xuất thêm --no-include-emailvào ecr loginlệnh. Hiệu quả của việc này là chính xác để thả -e nonetừ docker loginlệnh đó nó ra.
dsclose

1

Chạy tuyên bố đăng nhập.

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

Sau đó, xóa cờ và giá trị -e nonekhỏi câu lệnh kết quả. Vì vậy, những gì bạn chạy sẽ trông như thế nào ...

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

1
Thêm --no-include-email vào ecr get-loginlệnh sẽ bỏ qua -e nonetừ khỏi đầu ra.
dsclose

1

Nếu bạn muốn tránh làm mới mã thông báo xác thực của mình theo cách thủ công aws ecr get-login, bạn có thể cài đặt trình trợ giúp thông tin xác thực Amazon ECR để thay thế. Người trợ giúp thông tin xác thực sẽ tự động truy xuất và cập nhật mã thông báo, do đó bạn không cần phải tự làm mới nó. Các gói có sẵn cho Debian (Buster hoặc mới hơn), Ubuntu (19.10 hoặc mới hơn), Amazon Linux 2, Mac OS (thông qua Homebrew) và một số hệ điều hành khác hoặc bạn có thể tải xuống bản phát hành nhị phân từ trang bản phát hành .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.