【问题标题】:cap:deploy not updating gems - need to run cap deploy:stop and cap deploy:startcap:deploy 不更新 gems - 需要运行 cap deploy:stop 和 cap deploy:start
【发布时间】:2013-08-03 06:15:45
【问题描述】:

我有一个 Spree 应用程序,并且还维护着一堆宝石。

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

我是不是有这个权利,因为这显然对用户造成了很大的破坏。

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

更新:

经过一番研究,我意识到我没有将其包含在 unicorn.rb 中。

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

这可能是原因吗?

【问题讨论】:

  • 您正在提交您的 Gemfile,对吗?捆绑器在服务器上?您是否收到任何捆绑程序错误。
  • 所以是git push,然后是cap deploy。没有捆绑器错误。只是我必须执行cap deploy:stopcap deploy:start 才能获取更改。

标签: ruby-on-rails gem capistrano spree


【解决方案1】:

为了有自动捆绑:

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

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

【讨论】:

  • 是的。这是我config/deploy.rb 的第一行。
  • 更详细地编辑了我的答案,请检查并让我知道故障排除结果,以便我进一步搜索
  • 谢谢本杰明。明天我可以测试时更新你。 :)
  • 嘿。目前有结果吗?
  • 原来我的unicorn_init.sh 文件中有一个小错误。还有其他一些小问题……但是现在可以更新宝石了。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 2022-09-28
  • 1970-01-01
相关资源
最近更新 更多