如何解决如何使 CodePipeline 与 Git、ECR、CodeBuild 和 CodeDeploy 配合使用?
我正在尝试为我的应用程序实现某种 CI/CD。我们目前拥有的:
-
一个ECS集群,包含一个或多个实例(自动伸缩),每个实例有一个任务,这个任务在一个API中。
-
CodeBuild,我们目前手动启动,我们使用它为 ECR 上的 API 构建映像
CodeBuild 执行后,我们需要手动停止任务,以便每个任务使用新镜像,然后相关服务会自动重启。
为了让它更像 CI/CD,我选择使用 CodePipeline
在 Source 步骤中,我选择 Bitbucket(这是我们用来托管代码的平台),以便在特定分支上检测到推送时,它会触发 CodePipeline 执行
在构建步骤中,我选择了 CodeBuild,它会在收到 Bitbucket webhook 后构建 Docker Image。
在 Deploy 步骤中,我选择 CodeDeploy,其中已经包含一个应用程序,该应用程序是通过为我的 ECS 服务选择 Blue/Green 部署而创建的。
我目前不明白的是:
-
在哪里可以包含 ECR 步骤?如果我将它包含在 Source 步骤中,图像仍然不会被构建,因为 CodeBuild 在之后发生的 Build 步骤中。根据我的测试,我不能在任何其他步骤中包含 ECR,即使我创建自己的像 Post-Build 之类的东西。所以我不知道该怎么办
-
究竟什么是神器? CodeBuild 执行后,它似乎在 S3 上保存了一些东西,我可以将工件链接到 CodeDeploy 步骤。但在我的情况下,我看不出这有什么意义。
解决方法
docker 镜像需要在构建阶段更新到 ECR。
在部署阶段,您需要访问 ECS 集群的 ECR 映像。
工件是一个阶段的结果/结果,通常它会被编译源代码。但是在您的工件中是 docker 映像,它不能存储在 S3 中,而是将其上传到 ECR。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。