如何使 CodePipeline 与 Git、ECR、CodeBuild 和 CodeDeploy 协同工作?
How to make CodePipeline work with Git, ECR, CodeBuild and CodeDeploy?
我正在尝试为我的应用程序实现某种 CI/CD。我们目前拥有的:
一个ECS集群,包含一个或多个实例(自动伸缩),每个实例有一个任务,这个任务在API.
CodeBuild,我们目前手动启动,我们使用它为位于 ECR
上的 API 构建映像
CodeBuild 执行后,我们需要手动停止任务,以便每个任务使用新图像,然后由相关服务自动重新启动。
为了让它更 CI/CD 喜欢,我选择使用 CodePipeline
在 Source 步骤中,我选择 Bitbucket(我们用来托管代码的平台),这样当在特定分支上检测到推送时,它会触发 CodePipeline 执行
在构建步骤中,我选择 CodeBuild,它将在接收到 Bitbucket webhook 后构建 Docker 图像。
在 Deploy 步骤中,我选择 CodeDeploy,它内部已经有一个应用程序,该应用程序是通过为我的 ECS 服务选择蓝/绿部署而创建的。
我目前不明白的是:
我可以在哪里包含 ECR 步骤?如果我将它包含在 Source 步骤中,图像仍然不会被构建,因为 CodeBuild 在之后发生的 Build 步骤中。根据我的测试,我不能在任何其他步骤中包含 ECR,即使我创建了自己的 Post-Build 之类的东西。所以我不知道该怎么做
神器到底是什么? CodeBuild 执行后,它似乎在 S3 上保存了一些东西,我可以 link 将工件添加到 CodeDeploy 步骤。但我看不出这对我来说有什么意义。
docker 映像需要在构建阶段更新到 ECR。
在部署阶段,您需要访问 ECS 集群的 ECR 映像。
工件是outcome/results的一个阶段,一般都是编译源代码。但是在你的工件中是 docker 图像,它不能存储在 S3 中而是上传到 ECR。
我正在尝试为我的应用程序实现某种 CI/CD。我们目前拥有的:
一个ECS集群,包含一个或多个实例(自动伸缩),每个实例有一个任务,这个任务在API.
CodeBuild,我们目前手动启动,我们使用它为位于 ECR
上的 API 构建映像
CodeBuild 执行后,我们需要手动停止任务,以便每个任务使用新图像,然后由相关服务自动重新启动。
为了让它更 CI/CD 喜欢,我选择使用 CodePipeline
在 Source 步骤中,我选择 Bitbucket(我们用来托管代码的平台),这样当在特定分支上检测到推送时,它会触发 CodePipeline 执行
在构建步骤中,我选择 CodeBuild,它将在接收到 Bitbucket webhook 后构建 Docker 图像。
在 Deploy 步骤中,我选择 CodeDeploy,它内部已经有一个应用程序,该应用程序是通过为我的 ECS 服务选择蓝/绿部署而创建的。
我目前不明白的是:
我可以在哪里包含 ECR 步骤?如果我将它包含在 Source 步骤中,图像仍然不会被构建,因为 CodeBuild 在之后发生的 Build 步骤中。根据我的测试,我不能在任何其他步骤中包含 ECR,即使我创建了自己的 Post-Build 之类的东西。所以我不知道该怎么做
神器到底是什么? CodeBuild 执行后,它似乎在 S3 上保存了一些东西,我可以 link 将工件添加到 CodeDeploy 步骤。但我看不出这对我来说有什么意义。
docker 映像需要在构建阶段更新到 ECR。
在部署阶段,您需要访问 ECS 集群的 ECR 映像。
工件是outcome/results的一个阶段,一般都是编译源代码。但是在你的工件中是 docker 图像,它不能存储在 S3 中而是上传到 ECR。