AWS CodePipeline - 使用现有 Dockerrun.aws.json 部署到 Elastic Beanstalk
AWS CodePipeline - Deploy to Elastic Beanstalk with existing Dockerrun.aws.json
我在 Elastic Beanstalk 上有一个多容器 Docker 应用程序 运行,在 CodePipeline 上有 CI/CD。我的应用程序分为多个存储库和多个图像:
- 前端Repository/Image/Pipeline
- 后端Repository/Image/Pipeline
- 部署存储库(
Dockerrun.aws.json
、nginx/conf.d/
等)
我唯一部署到 Elastic Beanstalk 的是我的部署存储库。前端和后端存储库没有关于 Dockerrun.aws.json
文件、环境变量等的信息。
我的问题是,在我的前端和后端存储库的 CodePipeline 的最新步骤中,它尝试将其推送到 Elastic Beanstalk 但失败了,因为输出工件中不包含 Dockerrun.aws.json
文件。
所以我想做的是,Pipeline 应该构建图像,将其推送到 ECR(我已经成功地做到了),然后触发 Elastic Beanstalk 以 update/pull 下载图像。我该怎么做呢?我不想将工件从构建推送到 Elastic Beanstalk。
Elastic Beanstalk 似乎旨在使用单个 "mono repo" 而不是 运行 作为多存储库应用程序。因此,我没有使用多个存储库,而是将它们合并为一个。
我当前的存储库现在看起来像这样:
.git/
backend_app/
frontend_app/
Dockerrun.aws.json
现在,每当我推送到我的存储库时,AWS CodePipeline 都会获取更改并可以将其成功部署到我的 Elastic Beanstalk 应用程序。
对于任何想要 运行 使用微服务、多存储库或类似应用程序的人,我猜 Elastic Beanstalk 可能不是正确的方法。
我在 Elastic Beanstalk 上有一个多容器 Docker 应用程序 运行,在 CodePipeline 上有 CI/CD。我的应用程序分为多个存储库和多个图像:
- 前端Repository/Image/Pipeline
- 后端Repository/Image/Pipeline
- 部署存储库(
Dockerrun.aws.json
、nginx/conf.d/
等)
我唯一部署到 Elastic Beanstalk 的是我的部署存储库。前端和后端存储库没有关于 Dockerrun.aws.json
文件、环境变量等的信息。
我的问题是,在我的前端和后端存储库的 CodePipeline 的最新步骤中,它尝试将其推送到 Elastic Beanstalk 但失败了,因为输出工件中不包含 Dockerrun.aws.json
文件。
所以我想做的是,Pipeline 应该构建图像,将其推送到 ECR(我已经成功地做到了),然后触发 Elastic Beanstalk 以 update/pull 下载图像。我该怎么做呢?我不想将工件从构建推送到 Elastic Beanstalk。
Elastic Beanstalk 似乎旨在使用单个 "mono repo" 而不是 运行 作为多存储库应用程序。因此,我没有使用多个存储库,而是将它们合并为一个。
我当前的存储库现在看起来像这样:
.git/
backend_app/
frontend_app/
Dockerrun.aws.json
现在,每当我推送到我的存储库时,AWS CodePipeline 都会获取更改并可以将其成功部署到我的 Elastic Beanstalk 应用程序。
对于任何想要 运行 使用微服务、多存储库或类似应用程序的人,我猜 Elastic Beanstalk 可能不是正确的方法。