使用 Amazon AWS Elastic Beanstalk 运行具有多个 git 存储库的平台的最佳方式是啥?
Posted
技术标签:
【中文标题】使用 Amazon AWS Elastic Beanstalk 运行具有多个 git 存储库的平台的最佳方式是啥?【英文标题】:What's the best way to run a platform with multiple git repositories with Amazon AWS Elastic Beanstalk?使用 Amazon AWS Elastic Beanstalk 运行具有多个 git 存储库的平台的最佳方式是什么? 【发布时间】:2013-01-16 18:37:51 【问题描述】:我有一个使用 php 构建的 Web 应用程序平台,由多个应用程序组成,这些应用程序位于不同的 Git 存储库中。
据我了解,您只能运行一个 AWS Elastic Beanstalk,并提供一个 Git 存储库。
有什么方法可以运行一个从多个 Git 存储库提供数据的 EB 环境?
【问题讨论】:
【参考方案1】:嗯,Elastic beanstalk 提供了借助配置文件自定义环境的能力。在此处查看详细信息:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html。
如果您需要从不同的 github 存储库中拉取您的应用程序,您可以通过以下方式执行:使用引导脚本创建配置文件,该文件将从您的 github 存储库中拉取应用程序,而不是通过 git aws.push 发布。
你知道 git aws.push 是如何工作的吗?此命令将源推送到 aws 服务,并使用您的源创建 zip 文件,然后将其放在 s3 存储桶上。然后调用环境更新并提供到 s3 存储桶的链接。
还可以将您的项目拉到本地。然后在 .ebextensions 中创建包含源代码和脚本的 zip 包,用于部署您的应用程序。
【讨论】:
【参考方案2】:我后来发现这是不可能的。 AWS 仅允许在任何时候将一个 Git 存储库部署到 EB 环境。
Git 子模块可能是问题的答案,但我不同意。
幸运的是,AWS 提供了另一种半托管解决方案:AWS OpsWorks。
对于与我在上面遇到的相同问题苦苦挣扎的其他人,那么您绝对应该尝试一下。
http://aws.amazon.com/opsworks/
【讨论】:
【参考方案3】:老问题,但我正在回复有人从谷歌绊倒,就像我一样。
我发现解决此问题的一种方法是自己构建要上传到 AWS Elelastic Beanstalk 的 .zip 包,并配置 EB CLI 以使用它。这是相关的文档:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html#eb-cli3-artifact
您可以使用一个简单的脚本来运行 git 存档,根据项目需要将所有这些合并到一个 .zip 文件中(或运行您可能需要的任何构建过程),然后进行部署。
【讨论】:
以上是关于使用 Amazon AWS Elastic Beanstalk 运行具有多个 git 存储库的平台的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Amazon AWS Elastic Beanstalk - 连接到 mongodb
使用 Elastic Beanstalk 在 Amazon AWS 上为非 Rails ruby 脚本安装 Gems
Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本
带有 Amazon ECR Docker 映像的 AWS Elastic Beanstalk