更新 ECS 中的任务定义
Updating Task Definitions in ECS
我目前正在尝试通过 CodePipeline 自动化我的构建和部署过程。我的代码在 codebuild 中完成构建后,我想更新我的任务定义并通过 CodeBuild 通过 aws cli 更新我的服务。
我在更新服务时遇到问题,因为我无法跟踪修订号。有没有办法让更新的服务知道使用最新版本?我知道您可以指定 json,但我如何操作修订号以使服务指向我的注册表中的正确图像?
稍微阅读一下亚马逊 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
用图片更新任务:
使用任务更新服务
希望对您有所帮助
我目前正在尝试通过 CodePipeline 自动化我的构建和部署过程。我的代码在 codebuild 中完成构建后,我想更新我的任务定义并通过 CodeBuild 通过 aws cli 更新我的服务。
我在更新服务时遇到问题,因为我无法跟踪修订号。有没有办法让更新的服务知道使用最新版本?我知道您可以指定 json,但我如何操作修订号以使服务指向我的注册表中的正确图像?
稍微阅读一下亚马逊 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
用图片更新任务:
使用任务更新服务
希望对您有所帮助