我已将初始docker镜像推入存储库并使用图像创建了AWS Fargate,是否有任何方法可以更新图像,因为我的docker镜像中存在某些更改。
您可以在为应用程序使用default-launch-type
作为FARGATE创建集群后编写配置文件,并在任务定义中定义相应的参数,即ecs-params.yaml
这是nginx:latest
图像的一个文件,存储在Amazon ECR中。
version: '2'
services:
web:
image: account-id.dkr.ecr.ap-southeast-1.amazonaws.com/nginx:latest
ports:
- "80:80"
logging:
driver: awslogs
options:
awslogs-group: awslogs-web
awslogs-region: ap-southeast-1
awslogs-stream-prefix: web-nginx
您只需更改映像,就可以在更新群集内的服务时将更新的映像部署到部署中。
如果已更新应用程序的Docker映像,则可以使用该映像创建新任务定义并将其部署到服务中。服务调度程序使用最小健康百分比和最大百分比参数(在服务的部署配置中)来确定部署策略。
注意:任务定义中的Execution Role
提供从容器注册表中提取图像的权限。
你可以在这里找到文档指南,AWS ECS Update Service
创建任务定义的新版本并使用最新标签更新容器并更新服务。
如果已更新应用程序的Docker映像,则可以使用该映像创建新任务定义并将其部署到服务中。
注意
如果更新的Docker镜像使用与服务的现有任务定义中相同的标记(例如,my_image:latest),则无需创建任务定义的新修订。您可以使用以下过程更新服务,保留服务的当前设置,然后选择强制新部署。部署启动的新任务会在启动时从存储库中提取当前图像/标记组合。当您指定LATEST时,在更新Fargate任务以使用更新的平台版本时,也会使用Force新部署选项。例如,如果您指定了LATEST,并且您正在运行的任务正在使用1.0.0平台版本,并且您希望它们使用较新的平台版本重新启动。
https://docs.aws.amazon.com/AmazonECS/latest/userguide/update-service.html#update-service