[英]Bundler causing capistrano deployment failure on a Rails 2 app
[英]Deployment of Rails 3 App using Bundler and Capistrano
在capistrano部署Rails3应用程序期间,我希望我的服务器在每次部署时使用Gemfile.lock安装gem。 因为我的服务器没有rvm和所有..所有宝石都应该作为系统宝石安装。
要安装系统gem,我们需要把sudo gem install anygem
或者sudo gem install anygem
,我们需要在我们current
的capistrano部署结构目录中提供命令sudo bundle install
。
每次我部署时,我的部署都会在gems安装过程中中断。 我需要运行sudo bundle install
。 为此,我需要一个capistrano的部署钩子。 由bundler gem本身提供的预构建的对我来说不起作用。 我的困惑归结为这三个问题。
我什么时候应该在部署过程中调用sudo bundle install
命令 - 我的意思是在哪个capistrano任务之后?
要使用capistrano运行sudo
命令,我应该在cap文件中指定哪些声明? 注意 - 我已经将我的公钥作为我的服务器中的授权密钥。
如何将bundle install hook写入cap
文件?
请帮忙。
向deploy.rb
添加require "bundler/capistrano"
应该可以正常工作。 它应该声明一个文件夹来安装gems,不需要suv访问,无论rvm如何。
那还在为你失败吗?
如果您运行bundle install --deployment
,则不应该需要sudo访问权限,因为gem应该安装到应用程序中的vendor / bundle而不是系统本身。
我在deploy.rb中使用它:
require "bundler/capistrano"
... deploy recipe
namespace :bundle do
desc "Install bundles into application"
task :install, :roles => [:app] do
run "cd #{current_path} && LC_ALL='en_US.UTF-8' bundle install --deployment --without test"
end
end
然后在正常部署后运行“cap bundle:install”
注意:使用UTF-8来防止ruby1.9 ASCII字符问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.