我使用亚马逊的Elastic Beanstalk通过Git部署我的应用程序,并且我的Git中有子模块。 当然,当我查看子模块的数据所在的目录时,由于子模块尚未初始化,因此没有任何内容。
显然Elastic Beanstalk不支持子模块。 它是否正确? 如果是这样,我怎么能说服Git让我有一个子模块的function,但仍然上传所有的子模块的代码时,我推主repo?
我正在使用node.js,所以我想安装脚本可能是最好的select
如果你没有太多的子模块(你不经常改变或者更新它们),你可以用静态文件replace它们。
PHP社区中的许多人已经开始放弃使用Git子模块pipe理依赖关系,转而使用Composer http://getcomposer.org/ 。 这可能会使部署stream程的一部分更简单。
还有一个解决scheme在这里概述https://forums.aws.amazon.com/message.jspa?messageID=474880最后的评论(2013年8月1日下午1:37由oquismail)展示了如何修改Elastic beanstalkconfiguration文件
您可以考虑通过https://github.com/briandilley/ebs-deploy (基于Python的命令行工具来pipe理Amazon Elastic Beanstalk应用程序)来pipe理部署。
你也可以直接git clone子模块来取回独立的Git仓库。 请参阅https://stackoverflow.com/q/29246750/242933
如果您使用通过点安装awsebcli ,那么这可能会帮助你。
我们能够在PyPi上findAWS-EB客户端3.10.1的源代码 。
问题在于如何处理git回购,同时压缩项目的源代码以将其上传到AWS。 如果您不使用git作为您的AWS项目,则整个项目目录(包括您可能拥有的子目录下的任何其他git模块)将被压缩并发送到AWS。 如果你使用git,那么除子模块以外的所有签入或分阶段代码将被压缩并发送到AWS。 Git子模块被跳过。
我们通过改变行为来为这个问题写了一个修补程序,这样子模块也被添加到了压缩归档文件中。 你可以在我们的git repo上看到github.com/uppercasebrands/awsebcli-3.10.1/compare/eb-deploy-submodule的修正,它是从原始的PyPi包创build的。
您可以通过使用pip来安装现在支持子模块的固定awsebcli-3.10.1:
pip install --upgrade git+https://github.com/uppercasebrands/awsebcli-3.10.1.git@eb-deploy-submodule