如何将 docker 容器映像更新从 AWS ECR 部署到 ECS?

Rhy*_*man 5 amazon-ec2 amazon-web-services docker

我是亚马逊 ECSdocker 的新手,不知道如何部署新的镜像。

我目前在 ECR 中创建了一个新图像

NAME_TAG=my-image-name:my-tag-v1
ECR=my-acct-number.dkr.ecr.us-east-1.amazonaws.com

docker build -t $NAME_TAG .
docker tag -f $NAME_TAG $ECR/$NAME_TAG
$(aws ecr get-login --region us-east-1) #log in
docker push $ECR/$NAME_TAG
Run Code Online (Sandbox Code Playgroud)

此时我不知道如何将新容器从 ECR 部署到我的集群。

我使用 Cloud Formation 模板创建了集群、任务和服务,但将TaskDefinition映像更新到$ECR/$NAME_TAG并运行堆栈更新最终会超时并因“服务不稳定”错误而失败。

如果我推送到 my-image-name:latest,我的集群实例拉下新镜像,但它们不会运行它,无论如何我想避免使用神秘latest标签。

我应该如何将新映像部署到 ECS?

Shi*_*his 2

您应该能够在每次部署时使用新的任务定义来部署映像。任务定义允许您使用属性“image”设置图像版本

"image":"my-acct-number.dkr.ecr.us-east-1.amazonaws.com/my-image-name:my-tag-v1"
Run Code Online (Sandbox Code Playgroud)

如果您只想使用一个任务定义,则必须构建图像并使用定义中定义的任何内容对其进行标记。