1

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

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

4

1 回答 1

0

稍微阅读一下亚马逊的 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

  • 使用图像更新任务:

  • 使用任务更新服务

希望这可以帮到你

于 2017-06-16T20:53:49.053 回答