我有一个用 PHP 构建的 Web 应用程序平台,由多个应用程序组成,这些应用程序位于不同的 Git 存储库中。
据我了解,您只能运行一个 AWS Elastic Beanstalk,并提供一个 Git 存储库。
有什么方法可以运行一个来自多个 Git 存储库的 EB 环境?
我有一个用 PHP 构建的 Web 应用程序平台,由多个应用程序组成,这些应用程序位于不同的 Git 存储库中。
据我了解,您只能运行一个 AWS Elastic Beanstalk,并提供一个 Git 存储库。
有什么方法可以运行一个来自多个 Git 存储库的 EB 环境?
从那以后,我发现这是不可能的。AWS 仅允许在任何时候将一个 Git 存储库部署到 EB 环境。
Git 子模块可能是问题的答案,但我不同意。
幸运的是,AWS 提供了另一种半托管解决方案:AWS OpsWorks。
对于其他在我上面做的同样问题上苦苦挣扎的人,那么你绝对应该尝试一下。
嗯,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 包,用于部署您的应用程序。
老问题,但我正在回复有人从谷歌绊倒,就像我一样。
我发现解决此问题的一种方法是自己构建要上传到 AWS Elelastic Beanstalk 的 .zip 包,并配置 EB CLI 以使用它。这是相关的文档:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html#eb-cli3-artifact
您可以有一个简单的脚本来运行 git 存档,将所有这些合并到一个 .zip 文件中,因为您的项目需要它(或运行您可能需要的任何构建过程),然后部署它。