更新ECS中的任务定义
问题描述:
我目前正在尝试通过CodePipeline自动执行构建和部署过程。当我的代码在codebuild中完成构建后,我想通过CodeBuild通过aws cli更新我的任务定义并更新我的服务。更新ECS中的任务定义
我在更新服务时遇到问题,因为我无法跟踪修订版号。有没有办法让更新的服务知道使用最新版本?我知道你可以指定一个json,但是我怎样操纵修订版本号,以便服务指向我注册表中的正确图像?
答
读一点亚马逊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
您可以保留版本号(和结肠癌)关闭任务定义的强迫你的服务,使用最新的。 –