如何使用capistrano部署自定义Gem?

时间:2012-11-22 01:01:15

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems capistrano

我是RoR的新手。我的gem执行一些后台处理并加载瘦服务器,以便可以不时检查它。我需要使用Capistrano将它放在我的Web服务器上。

人们通常会将宝石部署到他们的服务器上,还是应该以其他方式编写应用程序?

Capistrano也是部署宝石的正确方法吗?

3 个答案:

答案 0 :(得分:0)

您之前检查过Bundler吗?这与capistrano部署非常有效,您可以在部署时使用您的应用程序打包宝石。

答案 1 :(得分:0)

或者您可以使用宝石珠宝商:https://github.com/technicalpickles/jeweler

答案 2 :(得分:0)

我发现部署自定义Gem与任何其他项目类型没有什么不同。我只需要在我的deploy.rb文件中添加一个新的Capistrano任务,以便在文件被Capsitrano下载到服务器后安装gem。这就是我必须做的一切。

desc "Install this gem"
task :setup_install, roles: :app do
    run "cd #{release_path} && gem build zoe.gemspec"
    run "cd #{release_path} && gem install YOUR-GEM-NAME.gem --quiet"
end
after "deploy:finalize_update", "deploy:setup_install"

desc "Uninstall this gem"
task :setup_uninstall, roles: :app do
    run "gem uninstall -x YOUR-GEM-NAME"
end
before "deploy:setup_install", "deploy:setup_uninstall"