我目前正在尝试通过 CodePipeline 自动化我的构建和部署过程。在我的代码在 codebuild 中完成构建后,我想通过 CodeBuild 更新我的任务定义并通过 aws cli 更新我的服务。
我在更新服务时遇到问题,因为我无法跟踪修订号。有没有办法让更新的服务知道使用最新的版本?我知道你可以指定一个 json,但我怎样才能操纵修订号,使服务指向我的注册表中的正确图像?
我目前正在尝试通过 CodePipeline 自动化我的构建和部署过程。在我的代码在 codebuild 中完成构建后,我想通过 CodeBuild 更新我的任务定义并通过 aws cli 更新我的服务。
我在更新服务时遇到问题,因为我无法跟踪修订号。有没有办法让更新的服务知道使用最新的版本?我知道你可以指定一个 json,但我怎样才能操纵修订号,使服务指向我的注册表中的正确图像?
稍微阅读一下亚马逊的 api 文档,并没有告诉你最后上传的图片是哪张。我建议在上传过程中捕获版本以便能够在服务中设置它。
当您列出图像时,我会给您留下 api 的响应。
响应语法:
{
"imageIds": [
{
"imageDigest": "string",
"imageTag": "string"
}
],
"nextToken": "string"
}
一个可能的过程可以是:
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
使用图像更新任务:
使用任务更新服务
希望这可以帮到你