2014-10-29 41 views
0

我有導軌4.1應用程序和capistrano3多階段(分段,生產)部署。特定環境Capefile capistrano3導軌4.1

我想將它部署到一個階段服務器(使用RVM)和一個生產服務器(使用紅寶石ENV)

默認情況下,一切工作良好生產服務器上,但沒有rvm1-capistrnao3安裝,其中包括寶石在Capefile我無法部署到分期。

是否有需要在Capefile「rvm1/capistrano3」的方式,只有當我部署到舉辦這樣的

cap staging deploy

回答

1

當您運行帽安裝,它會創建一個名爲config文件/部署。 rb和config/deploy目錄中的兩個文件:production.rb和staging.rb。對於生產服務器和登臺服務器都具有的所有設置,請使用config/deploy.rb文件。使用其他兩個用於這些機器上的相應設置。我會在Capfile中需要'capistrano/rvm',但只能在config/deploy/staging.rb文件中使用它。 Capistrano執行常見的config/deploy.rb FIRST,然後調用正確的staging.rb/production.rb文件,因此config/deploy.rb中的所有設置值都可在staging.rb/production.rb文件中找到。

+0

但是當我需要Capefile中的'rvm1/capistrano3',這打破了我的產品設置...並且cap production部署死於以下錯誤:''/ home/user/.rvm'中找不到rvm。' – 2014-10-29 14:03:07

+0

我正在尋找使用rvm1-capi只有在部署到升級時才能使用strano。或者在部署到生產時在配置/生產中以某種方式忽略它 – 2014-10-29 14:10:17

+0

我認爲它正在尋找的/home/user/.rvm在您的生產計算機上,而不是您的本地(開發)計算機,對不對?我實際上在我所有的(本地/舞臺和製作)機器上使用rbenv。然而,當將Capistrano寶石列在我的Gemfile開發組中時,我通過如下所示的「require:false」: gem'capistrano-rbenv','〜> 2.0',require:false – 2014-10-29 14:28:21

2

這裏是我做了什麼來解決它

我做了Capistrano的默認設置多級,像道格·霍爾說!

棘手的部分是包括在Capefile

見Deepak的解決辦法在這裏https://github.com/capistrano/rvm/issues/49

因此,而不是在Capefile只是require 'rvm1/capistrano3' rvm1-capistrano3的方式,那樣做

task :use_rvm do 
    require 'rvm1/capistrano3' 
end 

task 'staging' => [:use_rvm]