2016-01-05 53 views
1

我想使用角色部署多個具有相同deploy.rb的應用程序。不同的應用程序對於各種選項應該具有不同的值,例如deploy_to和scm。就像我在這封電子郵件中描述的Capistrano的谷歌組:如何根據角色在capistrano 3中設置不同的deploy_to值?

https://groups.google.com/d/msg/capistrano/LQpWkHr9h18/FQS8jl8-DQAJ

我是新來Capistrano的,我試圖想辦法的。

我有一個代碼庫,直到現在已經是Ruby on Rails應用程序 (使用Ruby 2.1.2),使用Capistrano進行部署。

現在我還想運行代碼庫作爲基於Ruby腳本的服務 (無Rails並且不偵聽HTTP請求)。這個版本的 服務將使用JRuby運行。

這兩個應用程序都使用相同的Gemfile,這兩個應用程序之間有很多代碼共用 。

我想弄清楚如何擴展Capfile來支持 額外的部署配置。

我正在看的一個方向是使用 Capfile中的新角色進行部署。這個新角色將與現有的 有很多不同,例如,它是如何重新啓動服務的,服務的安裝位置是 。

我的問題是:這種方法有什麼意義嗎?任何人都可以指出 一個更復雜的Capfile,顯示我已經 描述的一部分?

與此同時,我正在考慮在新的 名稱空間中添加新角色。

謝謝,大衛

版本:紅寶石紅寶石2.1.2 + JRuby的9.0.4.0 Capistrano的 3.4.0

回答

0

不幸的是,我得出的結論是,這是不可能的。

像deploy_to這樣的配置設置是全局的,不能被每個角色覆蓋。

1

角色的目的是定義在大多數情況下常見哪些任務要運行。例如,您可能希望在一臺服務器上運行數據庫遷移,在另一臺服務器上重新啓動應用程序,並在另一臺服務器上啓動一些後臺進程。但是所有這些角色都會將相同的代碼複製到服務器上的相同位置。

如果要部署多個不同的應用程序,則應該使用多個Capistrano配置。

相關問題