Docker login nieznany skrót flagi: „e”


121

Właśnie zaktualizowałem moją wersję dockera i znalazłem to polecenie

aws ecr get-login

już nie działa. Mam błąd:

nieznana skrótowa flaga: „e” w -e ”. Wygląda na to, że docker nie obsługuje już flagi -e.

Czy jest sposób, aby to naprawić?

Zainstalowane wersje:

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
I dlatego nie używamy krótkich opcji w naszych interfejsach, skryptach i wszystkim innym, co mogłoby kiedykolwiek pojawić się w oczach użytkowników, którzy nie pamiętają doskonale wszystkich opcji wiersza polecenia używanych narzędzi. To może być nie na temat, ale myślę, że należy to podkreślić, ponieważ każdy programista, który napotyka takie pytania, musi nawiązać takie połączenie, a zbyt wielu nie. (Bo gdyby opcja przekazana do dockera była podobna --email, zmniejszyłoby to wysiłek i zwiększyło szanse użytkowników --no-include-emailna samodzielne odkrycie .)
mtraceur

Odpowiedzi:


201

dodaj to do swojego wezwania

--no-include-email

oto nowa poprawna składnia:

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

Ta nowa opcja jest dostępna w AWS CLI od wersji 1.11.91 wydanej 23.05.2017 ... wydaj to, aby zaktualizować:

pip install --upgrade awscli

zobacz szczegóły tutaj

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

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

cytować :

„ Około 23 maja 2017 r. Powinieneś otrzymać e-mail z powiadomieniem od Amazona o włączeniu nowej --no-include-emailflagi w aws ecr get-logincelu zapewnienia zgodności z [Docker] 17.06.0”

Na przykład po tym, jak podążam

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

pokazuje mi następujące dane wyjściowe

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

aby dokończyć logowanie Dockera do repozytorium aws, skopiuj N wklej powyżej z powrotem do tego samego terminala, zgodnie z ...

 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

teraz jesteś zalogowany do repozytorium aws docker


4
Zauważ, że może to wymagać aktualizacji awscli do najnowszej wersji.
broofa,

3
sudo pip install --upgrade awscli
Phil Strong

1
Uratowaliście mnie <3
DaniG2k,

1
Takich jak ludzie, którzy ratują biedne dusze terminami tutaj. Dzięki
Alfonso Pérez

1
Z jakiegoś powodu uruchomienie pip install --upgrade awsclinie aktualizuje aws, a --no-include-emailopcje nie są rozpoznawane. Musiałem skorzystać z odpowiedzi amazii poniżej
Jonathan Morales Vélez

18

jeśli z jakiegoś powodu nie możesz zaktualizować wersji awscli, możesz trochę manipulować ciągiem znaków, aby działała ona dla ciebie z sedem.

na przykład:

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

spowoduje to usunięcie flagi -e, która nie jest obsługiwana i powinieneś być w stanie się zalogować.


1
to działało dla mnie. nadal ciekawi, dlaczego się nie udało z powodu rzeczy „-e”
Shree Prakash

@ShreePrakash to tylko starsza wersja programu CLI
Alexander Mills

7

Miałem ten sam problem, jednak po odpowiedzi Scotta Stenslanda go nie rozwiązałem.

Na wypadek, gdyby przydarzyło się to komuś innemu, usunięcie „-e none” z polecenia rozwiązało problem.


1
Pracował dla mnie ...
codersofthedark

Odpowiedź, do której się odnosisz, sugeruje dodanie --no-include-emaildo ecr loginpolecenia. Efektem tego jest właśnie spadek -e nonez docker loginpoleceniem, że wyjść.
dclose

1

Uruchom instrukcję logowania.

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

Następnie usuń flagę i wartość -e nonez wynikowej instrukcji. Więc to, co biegasz, wyglądałoby jak ...

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

1
Dodanie --no-include-email do ecr get-loginpolecenia pomija -e nonefrom z danych wyjściowych.
dclose

1

Jeśli wolisz uniknąć ręcznego odświeżania tokena uwierzytelniania za pomocą aws ecr get-login, możesz zamiast tego zainstalować pomocnika poświadczeń Amazon ECR . Pomocnik poświadczeń zajmie się automatycznym pobieraniem i aktualizacją tokenów, więc nie musisz ich samodzielnie odświeżać. Pakiety są dostępne dla Debiana (Buster lub nowszego), Ubuntu (19.10 lub nowszego), Amazon Linux 2, Mac OS (przez Homebrew) i kilku innych systemów operacyjnych lub możesz pobrać wersje binarne ze strony z wydaniami .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.