我使用capistrano3进行了rails 4.1 app和多级(暂存,生产)部署。
我想将它部署到一个阶段服务器(使用rvm)和一个生产服务器(使用ruby env)
默认情况下,一切都在生产服务器上运行良好,但没有安装rvm1-capistrnao3 gem并包含在Capefile中我无法部署到分段。
有没有办法要求' rvm1 / capistrano3'在Capefile中,只有当我部署到像
那样的升级时 cap staging deploy
答案 0 :(得分:2)
以下是我为解决此问题所做的工作
我做了默认的capistrano多级设置,就像Doug Hall说的那样!
棘手的部分是在Capefile中包含rvm1-capistrano3的方法
请在此处查看deepak的解决方法https://github.com/capistrano/rvm/issues/49
所以在Capefile中不仅仅是require 'rvm1/capistrano3'
,而是像那样
task :use_rvm do
require 'rvm1/capistrano3'
end
task 'staging' => [:use_rvm]
答案 1 :(得分:1)
运行cap install时,它会在config / deploy目录中创建一个名为config / deploy.rb的文件和两个文件: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文件中找到。