更新 ECS 中的任务定义

Updating Task Definitions in ECS

我目前正在尝试通过 CodePipeline 自动化我的构建和部署过程。我的代码在 codebuild 中完成构建后,我想更新我的任务定义并通过 CodeBuild 通过 aws cli 更新我的服务。

我在更新服务时遇到问题,因为我无法跟踪修订号。有没有办法让更新的服务知道使用最新版本?我知道您可以指定 json,但我如何操作修订号以使服务指向我的注册表中的正确图像?

稍微阅读一下亚马逊 api 的文档,并没有告诉您哪个是最后上传的图像。我建议在上传的过程中抓取版本可以在服务中设置。

当你列出图片时,我把 api 的回复留给你。

响应语法:

{
   "imageIds": [ 
      { 
         "imageDigest": "string",
         "imageTag": "string"
      }
   ],
   "nextToken": "string"
}

一个可能的过程可以是:

  • 获取你的 repo 的标签:

TAG=$(git describe --always)

  • 使用此标签构建图像:

docker build . -t [acount].dkr.ecr.[zone].amazonaws.com/[app]:TAG

  • 推送图片:

docker push [acount].dkr.ecr.[zone].amazonaws.com/[app]:TAG

  • 用图片更新任务:

  • 使用任务更新服务

希望对您有所帮助