问题
报错信息:
Error: Cannot perform an interactive login from a non TTY device
解决方案
- 搜索到的参考方案:不适用我这种情况的解决方案
该方案的内容是:在命令:docker login xxxx
之前加上 winpty,将执行命令变为:winpty docker login xxxxx
,我执行的结果为-bash: winpty :command not found
- 适用的解决方案
由于登陆的是AWS ECR的仓库,执行的命令是(其中‘xxx’替换为自己AWS环境的参数即可):
aws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/xxx/project
而awscli已经作了升级,我还是原来1.0的awscli,按AWS的文档重新安装了2.0的awscli之后执行成功。
若已安装了awscli v1.0,则执行如下命令:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg ./AWSCLIV2.pkg -target /
注意:这里没有sudo密码的请开启Mac OS的root用户后重试,可参考:如何在Mac OS中添加root用户
AWS参考文档:安装AWS CLI v2