我们在 AWS Beanstalk 应用程序上使用 Symfony2。对于部署,我们调整了部署脚本以在应用程序上传后进行作曲家安装。
尽管这在理论上可行,但它也有一些缺点——主要是不断增加的部署时间(有时会导致服务器超时)以及对其他服务器可用性的依赖性增加。
我读到有些人将其复制vendor/*
到 tmp-dir 并在部署后将其移回以加快部署速度。
它确实很有帮助,但我们composer.json
经常更新我们的,所以我们仍然必须在我们的部署过程中安装一个 composer 。我们认为最好的方法是将所有依赖项 ( vendor/*
) 作为文件包含在 repo 中,并在部署期间跳过composer 安装。
不幸的是,大多数库都包含在 git-submodules 中,AWS 不支持子模块(所有文件都必须在 repo 中)。
所以我的问题来了:
删除所有 git-submodules 并提交真实文件的最佳方法是什么?
我试过结合:
git submodules --recursive foreach
与如何删除子模块?但没有成功。