更新ECS中的任务定义

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

我在更新服务时遇到问题,因为我无法跟踪修订版本号。 有没有办法让更新的服务知道使用最新的版本? 我知道你可以指定一个JSON,但我怎么操纵修订号,以便服务指向我的registry中正确的形象?

读一点亚马逊api的文档,不会告诉你哪个是上传的最后一张图片。 我build议在上传过程中捕获该版本可以在服务中设置它。

当您列出图像时,我会留下您对api的回应。

响应语法:

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

一个可能的过程可以是:

  • 获取您的回购标签:

TAG=$(git describe --always)

  • 用这个标签构build图像:

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

  • 推送图像:

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

  • 用图像更新任务:

  • 用任务更新服务

希望这可以帮到你