Cannot perform an interactive login from a non TTY device

Mac OS下AWS ECR docker login的问题

问题

报错信息:
Error: Cannot perform an interactive login from a non TTY device

解决方案

  1. 搜索到的参考方案:不适用我这种情况的解决方案
    该方案的内容是:在命令: docker login xxxx 之前加上 winpty,将执行命令变为: winpty docker login xxxxx,我执行的结果为 -bash: winpty :command not found
  2. 适用的解决方案
    由于登陆的是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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章