gpt4 book ai didi

amazon-web-services - AWS CodePipeline : How to make ECR Image build by CodeBuild as an artifact for the remaining stages?

转载 作者:行者123 更新时间:2023-12-04 15:32:21 26 4
gpt4 key购买 nike

我的 CodePipeline 目前有一个 Github 源和一个构建镜像并将其推送到 ECR 的 CodeBuild:

+---------------+      +-----------+     +-----+
| GitHub Source +----->+ CodeBuild +---->+ ECR |
+---------------+ +-----------+ +-----+

我想在管道中添加一个 CodeDeploy 步骤,它将镜像推送到 ECR 并将其部署在 ECS 上。但是我的 CodeBuild 步骤不会产生任何工件(它上传到 ECS,我不知道如何将 ECR 镜像定义为工件)。所以我无法将 CodeDeploy 连接到管道。知道如何做到这一点吗?
+---------------+      +-----------+     +-----+      +------------+     +-----+
| GitHub Source +----->+ CodeBuild +---->+ ECR +----->+ CodeDeploy +---->+ ECS |
+---------------+ +-----------+ +-----+ +------------+ +-----+

我能想到的唯一解决方案是制作第二个管道,以 ECR 作为来源,并进行部署。
     Pipeline 1
+---------------+ +-----------+ +-----+
| GitHub Source +----->+ CodeBuild +---->+ ECR |
+---------------+ +-----------+ +-----+

Pipeline 2
+-----+ +------------+ +-----+
| ECR +----->+ CodeDeploy +---->+ ECS |
+-----+ +------------+ +-----+

最佳答案

您应该定义一个人工制品,它将是一个名为 imagedefinitions.json 的 json 文件。用于 ECS 标准部署操作或 imageDetail.json用于 Amazon ECS 蓝/绿部署操作。引用文献 here 中对此进行了解释。 .

就我而言,由于我进行的是标准部署,因此我添加了 buildspec.yml在构建结束时,两个额外的命令:

  phases: 
build:
commands:

...Build and push to ECR...

echo Generating imagedefinitions.json
echo '[{"name":"<CONTAINER-NAME>","imageUri":"'<IMAGE-URI>"}]' > imagedefinitions.json
artifacts:
files:
- imagedefinitions.json

然后将文件添加为工件。

关于amazon-web-services - AWS CodePipeline : How to make ECR Image build by CodeBuild as an artifact for the remaining stages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60989211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com