RVM Gemset - Bundler & Capistrano в производстве - PullRequest
20 голосов
/ 02 октября 2011

Я развертываю приложение rails на VPS с capistrano, bundler и rvm.Вот часть моего deploy.rb

$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"     
require "bundler/capistrano"             # Load RVM's capistrano plugin.

set :rvm_type, :system
set :rvm_ruby_string, '1.9.2@gemset_name'

my .rvmrc

rvm --create use 1.9.2@gemset_name

Когда я вошел на сервер, я заметил, что был создан набор гемов rvm, однако все гемы были установленыв /shared/bundle/ruby/1.9.1/gems - нет в наборе гемов (/ usr / local / rvm / gemset)

Я использую RVM в разработке и думаю, что это здорово, но когда пораразвернуть в производство.каковы лучшие практики?Есть ли способ сказать, что bundler должен установить гемы в наборе гемов?

Нужен ли вообще гемсет?(кажется, что bundler уже изолирует наборы гемов), я что-то упустил?

Пожалуйста, помогите мне понять!

Большое спасибо

1 Ответ

17 голосов
/ 28 октября 2011

Я использую RVM и в разработке, и в производстве.Однако, хотя в разработке я использую наборы гемов для разделения гемов между моими проектами rails, я использую RVM только для установки рубинов на свой производственный VPS и позволяю Bundler обрабатывать версии моих гемов.

Использование интеграции с компоновщиком через require "bundler/capistrano" автоматически устанавливает некоторые вещи для упаковщика.Вы можете увидеть код этого на странице Bundlers Github .Основные настройки таковы, что bundle выполняет эту команду:

bundle install --gemfile Gemfile --path shared/bundle --deployment --quiet --without development test

Как видите, заданы флаги --deployment и --path, что говорит Bundler связывать ваши драгоценные камни с вашим приложением в shared/bundle, и используйте только те версии, которые указаны в вашем Gemfile.lock (т.е. версии, которые работают в разработке).Поскольку каталог комплектов используется совместно для развертываний, я нахожу его более простым, чем использование наборов гемов RVM для каждого приложения.

Если вы все еще хотите поместить драгоценные камни в отдельные наборы драгоценных камней, я бы порекомендовал этот урок от Дарси Лэйкок для дальнейшего чтения.

...