【问题标题】:AWS Elastic Beanstalk + Git SubmodulesAWS Elastic Beanstalk + Git 子模块
【发布时间】:2013-08-16 01:00:45
【问题描述】:

我正在使用 Amazon 的 Elastic Beanstalk 通过 Git 部署我的应用程序,并且我的 Git 中有子模块。当然,当我查看子模块的数据应该在的目录时,什么都没有,因为子模块还没有被初始化。

显然 Elastic Beanstalk 不支持子模块。它是否正确?如果是这样,我如何说服 Git 让我拥有子模块的功能,但在我推送主 repo 时仍然上传子模块的所有代码?

【问题讨论】:

    标签: git amazon-web-services git-submodules amazon-elastic-beanstalk


    【解决方案1】:

    如果您使用 CodePipeline,有一种方法可以使用 CodeBuild 获取所有子模块并自动将此工件提供给 Elastic Beanstalk:https://medium.com/@cristiano.ventura/working-with-git-submodules-in-codepipeline-83e843e5d0a

    【讨论】:

      【解决方案2】:

      如果您只需确保 Git 安装在 Customizing and Configuring AWS Elastic Beanstalk Environments 使用的 AMI 上,Elastic Beanstalk 确实支持子模块。你可以通过在你的 git repo 中提供一个配置来做到这一点:

      • 创建一个扩展名为.config(例如myapp.config)的配置文件,并将其放在你的git repo的.ebextensions顶级目录中

      • 在该文件中,指定依赖项:

         packages: 
            <name of package manager>:
               <package name>: <version>
      

      例如:

         packages:
            yum:
               git: []
      
      • 确保将 name of package manager 与您正在使用的 AMI 匹配,例如,yum 用于 Amazon Linux,apt 用于 Ubuntu。

      • 您可能需要调整构建脚本来初始化子模块,因为 EB 不会为您这样做

      • 提交、推送和部署并开始

      【讨论】:

        【解决方案3】:

        如果您使用通过 pip 安装的 awsebcli,那么这可能会对您有所帮助。

        我们在 PyPi 上找到了the source code for AWS-EB client 3.10.1

        问题在于在压缩项目的源代码以将其上传到 AWS 时如何处理 git repos。如果您的 AWS 项目不使用 git,则整个项目目录(包括您可能在其中的子目录下的任何其他 git 模块)将被压缩并发送到 AWS。如果您使用 git,则除子模块之外的所有签入或暂存代码都将被压缩并发送到 AWS。跳过 Git 子模块。

        我们通过更改行为来解决此问题,以便将子模块也添加到压缩存档中。您可以在我们的 git repo 上的 github.com/uppercasebrands/awsebcli-3.10.1/compare/eb-deploy-submodule 查看修复,该 repo 是从原始 PyPi 包创建的。

        您可以使用 pip 安装现在支持子模块的固定 awsebcli-3.10.1:

        pip install --upgrade git+https://github.com/uppercasebrands/awsebcli-3.10.1.git@eb-deploy-submodule

        【讨论】:

          【解决方案4】:

          哪个容器? Java、Ruby 等?

          有不同的部署工具,您不只是受困于 aws 提供的命令行 eb。我一直在研究一个 config/rake gem(使用eb_deployer),我很快就会发布它,它只使用一个 zip 文件,而不是一个 git push,这样就可以了。你也可以试试ebs-deploy

          【讨论】:

          • 我正在使用节点。不过,这是一个很好的观点,很有趣。我还在考虑在安装后运行一个节点构建脚本,这可能是我最终要做的。
          • 我终于完成了宝石。有关想法,请参阅 github.com/alienfast/elastic-beanstalk
          猜你喜欢
          • 2015-05-28
          • 2020-03-14
          • 1970-01-01
          • 2016-10-28
          • 2015-04-06
          • 2015-09-26
          • 2017-01-17
          • 2017-08-05
          • 2018-06-05
          相关资源
          最近更新 更多