如何在 AWS Fargate 中更新容器映像

Ram*_*Ram 17 amazon-web-services amazon-ecs aws-fargate

我已将初始 docker 映像推送到存储库并使用该映像创建了 AWS Fargate,是否有任何方法可以更新映像,因为我的 docker 映像中有某些更改。

Gab*_*son 9

就这么简单:

aws ecs update-service --cluster <cluster> --service <service> --force-new-deployment


Krz*_*iak 6

请参阅AWS 文档

如果您已更新应用程序的 Docker 映像,则可以使用该映像创建新的任务定义并将其部署到您的服务。

笔记

如果更新后的 Docker 映像使用与服务的现有任务定义中的标记相同的标记(例如,my_image:latest),则无需创建任务定义的新修订版。您可以使用以下过程更新服务,保留服务的当前设置,然后选择强制新部署。部署启动的新任务在启动时从您的存储库中提取当前图像/标签组合。当您指定 LATEST 时,在更新 Fargate 任务以使用更新的平台版本时,也会使用强制新部署选项。例如,如果您指定了 LATEST 并且您正在运行的任务使用 1.0.0 平台版本,并且您希望它们使用更新的平台版本重新启动。

https://docs.aws.amazon.com/AmazonECS/latest/userguide/update-service.html#update-service


moh*_*08p 2

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
Run Code Online (Sandbox Code Playgroud)

您只需更改映像,然后在更新集群内的服务时即可将更新后的映像添加到您的部署中。

如果您已更新应用程序的 Docker 映像,则可以使用该映像创建新的任务定义并将其部署到您的服务。服务调度程序使用最小健康百分比和最大百分比参数(在服务的部署配置中)来确定部署策略。

注意:Execution Rolein 任务定义授予从容器注册表中提取映像的权限。

您可以在此处找到文档指南:AWS ECS 更新服务