docker login unknown shorthand flag: 'e'

2019-01-17 02:47发布

问题:

I just updated my docker version and found out that command

aws ecr get-login

is not working anymore. Got error:

unknown shorthand flag: 'e' in -e`. Seems that docker doesn't support -e flag anymore.

Is there a way to fix this?

Installed versions:

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:

add this to your call

--no-include-email

here is the new valid syntax :

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

This new option is available in AWS CLI as of version 1.11.91 released on 05/23/2017 ... issue this to upgrade :

pip install --upgrade awscli

see details here

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

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

to quote :

"You should have received an email notification from Amazon around May 23 2017 about the new --no-include-email flag on aws ecr get-login for compatibility with [Docker] 17.06.0"



回答2:

if for some reason you can't upgrade awscli version, you can do a little string manipulation to make it work for you with sed.

for example:

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

this will drop the -e flag that is not supported and you should be able to login.



回答3:

I had the same issue however following Scott Stensland's answer did not solve it.

In case it will happen to someone else, dropping '-e none' from the command solved the issue.