ap-southeast-2区域Amazon ECR Public登录无法连接端点及非TTY登录失败问题
错误根因
- ECR Public的API部署限制:Amazon ECR Public的管控面接口仅在
us-east-1区域提供服务,和你的公共仓库实际创建的区域无关。你调用命令时指定了ap-southeast-2区域,找不到对应的ECR Public服务端点,因此抛出Could not connect to the endpoint URL的报错。 - 第二个
Cannot perform an interactive login from a non TTY device报错属于衍生问题:前半段aws ecr-public get-login-password执行失败,没有输出有效的密码到管道,docker login接收不到--password-stdin传入的密码,就会触发交互式输入密码的逻辑,在非TTY环境下就会抛出该错误,和你查阅的其他同类报错根因完全不同。
解决方案
修改登录命令中的区域参数为us-east-1即可正常登录,无需变更仓库地址:
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/<default_alias>
补充说明
你之前可以正常登录同区域私有ECR仓库,是因为私有ECR的服务为区域级部署,每个区域都有独立的管控面接口,和公共ECR的全局部署架构存在差异。
内容的提问来源于stack exchange,提问作者Kushan Gunasekera
相关产品推荐
相关产品推荐

