我有2个rails应用程序,它们位于同一个git repo中。
共享逻辑文件存在共享文件夹。
- app_1
- shared
- app_2
shared
文件夹实际上只是app_1
文件夹内相应位置的符号链接。还有shared_public
文件夹与app_1/public/files
和app_2/public/files
进行符号链接。
我该怎么做?我对任何事情持开放态度,这是一个干净的名单。该项目以前从未部署过,所以我没有现成的基础设施可供依赖。然而,分离共享逻辑(不幸的是)不是当前的选项,因为我必须使用时间框架。
答案 0 :(得分:0)
<强> GIT中强>
当您提到shared
文件夹是symlink
时 - 此仅存在于操作系统中,而不是git
由于git
只是此实例中的部署机制(I.E会将您repo
中的文件放到您的服务器上),您可能会执行以下操作:
- 在您的服务器上初始化
git
个目标(服务器上的$ git init
)- 在本地克隆您的
github
个回购(git clone https://github.com....
在您的本地方框中)- 将CD放入新文件夹add the server's repo as a remote
$ git push [server repo name] master
这不是你想要的,我知道。
它会将您的文件推送到您的服务器上 - 因此您将获得以下文件夹结构:
app1
app2
然后可以在您的服务器上创建shared
文件夹。
如果您有适当的服务器设置,您应该可以通过执行这些步骤
来运行<强> Capistrano的强>
如果你想使用Capistrano,你必须做一些更多的事情,因为这不仅仅是将你的文件推送到你的服务器
如果您要使用Capistrano
,则必须将app1
和app2
拆分为单独的应用程序,然后单独部署它们。这仍然允许您在服务器上创建符号链接,除了您的目录结构略有不同