更新ECS中的任务定义

问题描述:

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

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

+0

您可以保留版本号(和结肠癌)关闭任务定义的强迫你的服务,使用最新的。 –

读一点亚马逊api的文档,并没有告诉你哪个是上传的最后一张图片。我建议在上传过程中捕获能够在服务中设置的版本。

当你列出图像时,我给你留下了api的回应。

响应语法:

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

一个可能的方法可以是:

  • 获取你的回购的标签:

TAG=$(git describe --always)

  • 构建IMA GE与此标签:

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

  • 推形象:

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

  • 更新与图像任务:

  • 更新服务与任务

希望这可以帮助你

+0

非常感谢你的帮助,我最终使用了CodeBuild和全局环境变量中提供的版本号,这使得跟踪每个图像变得非常容易! – Serey