如何从单个Git仓库部署2个rails应用程序?

时间:2014-06-28 03:07:05

标签: ruby-on-rails git deployment capistrano

我有2个rails应用程序,它们位于同一个git repo中。

共享逻辑文件存在共享文件夹。

- app_1

- shared

- app_2

shared文件夹实际上只是app_1文件夹内相应位置的符号链接。还有shared_public文件夹与app_1/public/filesapp_2/public/files进行符号链接。

我该怎么做?我对任何事情持开放态度,这是一个干净的名单。该项目以前从未部署过,所以我没有现成的基础设施可供依赖。然而,分离共享逻辑(不幸的是)不是当前的选项,因为我必须使用时间框架。

1 个答案:

答案 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,则必须将app1app2拆分为单独的应用程序,然后单独部署它们。这仍然允许您在服务器上创建符号链接,除了您的目录结构略有不同