docker login unknown shorthand flag: 'e'


121

私はドッカーのバージョンを更新し、そのコマンドを見つけました

aws ecr get-login

もう動作していません。エラーが発生しました:

不明な省略フラグ:-e内の「e」。dockerが-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
そして、これが、使用するツールのすべてのコマンドラインオプションを完全に覚えていないユーザーの目に留まる可能性のあるインターフェイス、スクリプト、その他の短いオプションを使用しない理由です。それはトピック外かもしれませんが、私は強調することが重要だと思います。このような質問に出くわすすべてのソフトウェア開発者はこの接続を行う必要があり、あまりにも多くはそうしないでしょう。(Dockerに渡されるオプションがのようなものだった場合--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

この新しいオプションは、2017年5月23日にリリースされたバージョン1.11.91以降のAWS CLIで使用できます...これを発行してアップグレードします。

pip install --upgrade awscli

詳細はこちら

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

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

引用する:

「[Docker] 17.06.0との互換性のため の新しいフラグについて、2017年5月23日頃にAmazonから電子メール通知を受け取っているはず です。」--no-include-emailaws ecr get-login

例えば私が以下を発行した後

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リポジトリへのDockerログインを完了するには、上記のように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を最新バージョンに更新する必要がある場合があります。
ブローファ2017

3
sudo pip install --upgrade awscli
Phil Strong

1
あなたたちは私を<3を救った
-DaniG2k

1
のような人々は、ここに期限を設けて貧しい魂を救う人々です。ありがとう
AlfonsoPérez2017

1
何らかの理由で実行pip install --upgrade awscliしてもawsが更新されず、--no-include-emailオプションが認識されません。私は下のamaziaからの回答を使わなければなりませんでした
Jonathan

18

何らかの理由でawscliバージョンをアップグレードできない場合は、sedで動作するように文字列を少し操作できます。

例えば:

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

これにより、サポートされていない-eフラグが削除され、ログインできるようになります。


1
それは私のために働いた。'-e'が原因でフェリーに陥った理由を知りたいと思っています
Shree Prakash

@ShreePrakashはcliプログラムの古いバージョンです
Alexander Mills

7

私は同じ問題を抱えていましたが、スコット・ステンズランドの答えに従ってもそれは解決しませんでした。

それが他の誰かに起こる場合、コマンドから「-e none」を削除すると問題が解決しました。


1
私のために働いた..。
codersofthedark 2017年

あなたが参照する答えは--no-include-emailecr 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 と、出力からfromが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.