AWS CodePipeline - 使用现有的Dockerrun.aws.json部署到Elastic Beanstalk

时间:2017-12-03 03:50:00

标签: amazon-web-services continuous-integration elastic-beanstalk aws-codepipeline

我在CodePipeline上使用CI / CD在Elastic Beanstalk上运行多容器Docker应用程序。我的应用程序分为多个存储库和多个映像:

  • 前端存储库/图像/管道
  • 后端存储库/图像/管道
  • 部署存储库(Dockerrun.aws.jsonnginx/conf.d/等)

我部署到Elastic Beanstalk的唯一事情是我的部署存储库。前端和后端存储库没有关于Dockerrun.aws.json文件,环境变量等的信息。

我的问题是,在我的前端和后端存储库的CodePipeline的最新步骤中,它尝试将其推送到Elastic Beanstalk并失败,因为输出工件中不包含Dockerrun.aws.json文件。

所以我想做的是,Pipeline应该构建映像,将其推送到ECR(我已经成功完成),然后触发Elastic Beanstalk来更新/下拉图像。我该怎么做呢?我不想将构建中的工件推送到Elastic Beanstalk。

1 个答案:

答案 0 :(得分:1)

似乎Elastic Beanstalk意味着使用单个“mono repo”而不是运行多个repo应用程序。因此,我没有使用多个存储库,而是将它们合并为一个存储库。

我现在的存储库现在看起来像这样:

.git/
backend_app/
frontend_app/
Dockerrun.aws.json

现在每当我推送到我的存储库时,AWS CodePipeline都会获取更改并成功将其部署到我的Elastic Beanstalk应用程序。

对于想要使用微服务,多回购或类似服务器运行应用程序的任何人,我猜Elastic Beanstalk可能不是正确的方法。