cap:部署不更新gem - 需要运行cap deploy:stop和cap deploy:start

时间:2013-08-03 06:15:45

标签: ruby-on-rails gem capistrano spree

我有一个Spree应用程序,并且还保留了一堆宝石。

每当我执行cap deploy时,我发现必须执行cap deploy:stopcap deploy:start才能获取宝石中所做的更改。

我是否在此期间,因为这显然对用户非常具有破坏性。

我的设置主要来自Capistrano,Unicorn和Nginx的Railscasts剧集。

更新

经过一番研究后,我意识到我没有在unicorn.rb中加入此内容。

before_exec do |server|
  ENV['BUNDLE_GEMFILE'] = "#{root}/Gemfile"
end

这可能是原因吗?

1 个答案:

答案 0 :(得分:2)

为了拥有自动捆绑包:

  • 您必须在capistrano配置文件中require 'bundler/capistrano'
  • 您不得使用cap deploy
  • 选项运行no_release

要进行故障排除,首先需要确保deploy:finalize_update运行capistrano,您可以创建一个运行before "deploy:finalize_update"的方案,只需将som调试文本输出到您的控制台,您就会知道if问题发生在finalize_update之前或之后