我正在尝试将PHPFog作为主机,我真的很喜欢它的工作方式。
然而,我最近推动的一个项目遇到了问题。该项目包含一个子模块,PHPFog表示支持该子模块,但该子模块是另一台服务器上的私有存储库,需要SSH用户和密码。PHPFog显然不知道这一点,所以子模块更新和初始化假定会失败。
在PHPFog上使用私有子模块有推荐的解决方法吗?我能以某种方式将子模块合并到超级项目本身中并推动它吗?或者,我可以重新配置子模块以包含SSH登录信息,从而允许PHPfog成功初始化它吗?
编辑:作为一个快速修复:我克隆到一个临时目录中,删除子模块中的git文件夹,并作为单个repo上传到phpFog。这不是我想要的理想解决方案。
有一个新工具可以将带有git子模块的应用程序推送到PHP Fog。普通的git推送将不再为您获取子模块,您的应用程序将无法部署。
请参阅:PHP Fog的PF CLI
要推送带有git子模块的应用程序,请首先设置您的帐户。
pf setup
列出您的应用程序以验证您的登录并获取要克隆的应用程序的ID。
pf list apps
使用pf工具克隆应用程序请确保备份您现有的git文件夹
pf clone <app_id> <folder>
以下是使子模块工作的关键:从现在起,您必须使用update
命令和而不是push命令进行部署。
pf update
注意:pf setup命令将设置一个新的ssh密钥,并自动为您上传。它还在ssh/config中为此创建了一个新的别名。使用此工具后,您必须使用它来克隆应用程序,尽管您仍然使用git命令来添加和提交更改。如果你使用的是git子模块,你必须使用pf更新,git推送会破坏你的应用程序。
此时PHPFog不支持私有子模块。您可以使用composer之类的工具在本地管理包,并将成品推送到PHPFog。