如何自动部署容器至AWS ECS?实现ECR登录环节自动化
当然可以解决这个重复手动操作的麻烦!我给你两种简单的自动实现方式,帮你省去每次复制粘贴的步骤:
方法一:直接通过管道自动执行登录命令
你可以把aws ecr get-login的输出直接传给shell,让它自动执行对应的登录指令。因为登录命令需要sudo权限,所以调整后的命令如下:
aws ecr get-login --profile tutorial | sudo bash
这条命令会自动获取ECR的登录凭证,然后以sudo权限执行登录操作,全程无需手动干预。
方法二:整合到你的部署脚本中
如果要把这个逻辑直接融入你现有的Shell脚本,只需要替换原来手动粘贴的登录行即可。修改后的完整脚本如下:
# 自动获取并执行ECR登录命令 aws ecr get-login --profile tutorial | sudo bash # 后续部署步骤保持不变 sudo service docker restart sudo docker build -t ${image} . sudo docker tag ${image} ${fullname} sudo docker push ${fullname}
额外注意事项
- 确保你的环境已经正确配置AWS CLI,并且
tutorial这个IAM profile拥有ECR相关的权限(至少需要ecr:GetAuthorizationToken权限)。 - 如果你使用的是AWS CLI v2,官方已经弃用了
get-login命令,推荐使用更安全的get-login-password方式,对应的命令如下:
aws ecr get-login-password --profile tutorial | sudo docker login --username AWS --password-stdin https://foobar.dkr.ecr.us-east-1.amazonaws.com
这种方式不会在命令行历史中留下明文密码,安全性更高,建议优先采用。
内容的提问来源于stack exchange,提问作者Martin Thoma
相关产品推荐
相关产品推荐

