問題
報錯信息:
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