Rails bundle install production only

Ruby on-Rails-3Bundler

Ruby on-Rails-3 Problem Overview


I'm still new to rails/ruby/bundler and am a little confused.

In our config/application.rb file there's this bundler segment:

if defined?(Bundler)         
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

and in our Gemfile we use different groups, e.g.

group :development, :test do
  gem "rspec-rails", ">= 2.7.0", :group => [:development, :test]
  gem 'shoulda-matchers'
  gem 'watchr'
  gem 'spork', '~> 1.0rc'
  gem 'spectator'                          
  gem 'debugger'
  gem 'wirble'
end

But when I run RAILS_ENV=production bundle install (or bundle install --deployment), it still installs gems from the development/test group...

Why does this happens or how can I make this work properly?

Ruby on-Rails-3 Solutions


Solution 1 - Ruby on-Rails-3

THIS ANSWER IS OUTDATED


Take a look at --without option:

bundle install --without development test

By default Bundler installs all gems and your application uses the gems that it needs. Bundler itself knows nothing about Rails and the current environment.

Solution 2 - Ruby on-Rails-3

An alternative solution is to use the bundle-only ruby gem. It can be used as follows:

> gem install bundle-only
> bundle-only production

This library does not pollute your bundler configs or augment Gemfile.lock; it is a simple alternative to the built in bundle --without every other group option that bundler provides.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongingerlimeView Question on Stackoverflow
Solution 1 - Ruby on-Rails-3Simon PerepelitsaView Answer on Stackoverflow
Solution 2 - Ruby on-Rails-3Tom LordView Answer on Stackoverflow