【问题标题】:bundle install in Capistrano not installing assets gems in Rails在 Capistrano 中捆绑安装未在 Rails 中安装资产 gem
【发布时间】:2012-02-21 18:59:24
【问题描述】:

当我运行cap deploy 时,:assets 组中的 gem 没有安装。

这是一个问题,因为我使用的是预编译资产,而 Capistrano 必须在服务器上运行 rake assets:precompile。除非安装了资产 gem,否则这将失败。

我可以通过在正确的发布目录中手动运行bundle install 来解决这个问题。但显然这不是正确的工作流程。

这是 Capistrano 为在每次部署中安装 gems 所执行的完整命令:

rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'default' -c 'cd 
/home/deploy/rails_apps/vlc/releases/20120223192328 && bundle install --gemfile 
/home/deploy/rails_apps/vlc/releases/20120223192328/Gemfile --path 
/home/deploy/rails_apps/vlc/shared/bundle --deployment --quiet --without development test'

到此结束,我认为这可能是问题的一部分:

--deployment --quiet --without development test'

显然,这些标志会导致 Bundler 在没有 :assets 组的情况下安装。这里的预期行为是什么?是不是我看到的不正常? (我猜是这样,因为 Capistrano 故意不安装即将使用的 gem 组是没有意义的。)

作为旁注,我还注意到application.rb 中的这一行:

Bundler.require(*Rails.groups(:assets => %w(development test)))

我假设 application.rb 中的任何内容都不会影响 bundle install,因为 Rails 不会为此启动。但是,如果这条线实际上与我的问题有关,请纠正我。

【问题讨论】:

  • 你的Gemfile是什么样的?

标签: ruby-on-rails rvm capistrano bundler


【解决方案1】:

--without 被记住选项,检查你的项目目录/服务器上的文件.bundle/config 它可能已经包含这样的东西:

---
BUNDLE_WITHOUT: assets

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多