如何使 CodePipeline 与 Git、ECR、CodeBuild 和 CodeDeploy 协同工作?

How to make CodePipeline work with Git, ECR, CodeBuild and CodeDeploy?

我正在尝试为我的应用程序实现某种 CI/CD。我们目前拥有的:

CodeBuild 执行后,我们需要手动停止任务,以便每个任务使用新图像,然后由相关服务自动重新启动。

为了让它更 CI/CD 喜欢,我选择使用 CodePipeline

在 Source 步骤中,我选择 Bitbucket(我们用来托管代码的平台),这样当在特定分支上检测到推送时,它会触发 CodePipeline 执行

在构建步骤中,我选择 CodeBuild,它将在接收到 Bitbucket webhook 后构建 Docker 图像。

在 Deploy 步骤中,我选择 CodeDeploy,它内部已经有一个应用程序,该应用程序是通过为我的 ECS 服务选择蓝/绿部署而创建的。

我目前不明白的是:

docker 映像需要在构建阶段更新到 ECR。

在部署阶段,您需要访问 ECS 集群的 ECR 映像。

工件是outcome/results的一个阶段,一般都是编译源代码。但是在你的工件中是 docker 图像,它不能存储在 S3 中而是上传到 ECR。