我使用capistrano3部署了Rails4.1应用程序和多阶段(试运行、生产)。
我想把它部署到一个阶段服务器(使用rvm)和一个生产服务器(使用ruby env)。
默认情况下,一切在生产服务器上都运行得很好,但是如果没有安装rvm1-capistrnao3gem并包含在Capefile中,我就不能部署到staging。
有没有办法在Capefile中要求‘rvm1/capistrano3 3’,只有当我像那样部署到登台的时候
cap staging deploy
发布于 2014-10-29 23:17:27
以下是我为修复它所做的工作
我做了默认的capistrano多阶段设置,就像Doug Hall说的那样!
棘手的部分是在Capefile中包含rvm1-capistrano3 3的方法。
请在此处查看deepak的变通方法https://github.com/capistrano/rvm/issues/49
因此,不要只在Capefile中使用require 'rvm1/capistrano3',而是像这样做
task :use_rvm do
require 'rvm1/capistrano3'
end
task 'staging' => [:use_rvm]发布于 2014-10-29 21:59:12
当您运行cap install时,它会在配置/部署目录中创建一个名为config/deploy.rb的文件和两个文件: production.rb和staging.rb。对生产服务器和临时服务器共有的所有设置使用config/deploy.rb文件。将另外两个用于这些计算机上的相应设置。我需要在Capfile中使用'capistrano/rvm‘,但只在config/deploy/staging.rb文件中使用它。Capistrano首先执行公共的config/deploy.rb,然后调用适当的staging.rb/production.rb文件,因此来自config/deploy.rb的所有设置值都可以在staging.rb/production.rb文件中使用。
https://stackoverflow.com/questions/26631120
复制相似问题