Bundler + RVM + пассажир + развертывание CAPistrano и отсутствующие драгоценные камни

Я получил сервер с конфигурацией выше.

Это важная часть моего рецепта deply.rb:

$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
require 'bundler/capistrano'

set :rvm_ruby_string, 'ruby-1.9.2-p290'
set :rvm_type, :system
set :bundle_flags, "--deployment"

set :default_environment, {
  'PATH' => ENV['PATH'],
  'RAILS_ENV' => ENV['RAILS_ENV']
}

set :stages, %w(staging production)
require 'capistrano/ext/multistage'

Recipe Развертывание промежуточного покрытия Как есть, приводит к ошибке:

* executing "cd /mnt/data-store/project/releases/shared &&
bundle install --gemfile /mnt/data-store/project/releases/shared/Gemfile
--path /mnt/data-store/project/shared/bundle --deployment --without development test"

** [out :: localhost] The --deployment flag requires a Gemfile.lock.
Please make sure you have checked your Gemfile.lock into version control
before deploying.

... rolling back ...

failed: "env PATH=... RAILS_ENV=staging rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.2-p290' -c 'cd /mnt/data-store/project/releases/shared && bundle install --gemfile /mnt/data-store/project/releases/shared/Gemfile --path /mnt/data-store/project/shared/bundle --deployment --without development test'" on localhost

Gemfile и Gemfile.lock находятся в контроле источника. Я бежал install локально сначала, чтобы сгенерировать файл .lock. Но Bundler / Capistrano указывает на / mnt / data-store / project / relives / shared / gemfile, поэтому я просто скопировал вручную оба файла там. Я уверен, что я делаю это неправильно здесь. Я думаю, что он должен быть скопирован автоматически.

Выполните развертывание снова (1), и он не потерпел неудачу на установочном расслоении, он даже был

ваш пакет завершен! Он был установлен в / mnt / data-store / project / Shared / bundle в выходе.

Но один из моих задач шапочек выполняет грабли. Результатом этого есть: * Не удалось найти BCRYPT-RUBY-3.0.1 в любом из источников * Попробуйте запустить install bundle .

Исходя из моего приключения, я обнаружил, что, как только у вас будет .Bundle / Config с Bundle_Path: / MNT / Data-Store / Project / Shared / Bundle Оно работает. У меня был этот каталог, вероятно, созданный Bundler, под / MNT / Data-Store / Releasz / Shared / , поэтому я скопировал вручную в Rails Root.

Теперь, грабли / рельсы C работают.

Show Show Twitter показывает ... / Shared / Bundle / Ruby / 1.9.1 / Gems / Twitter-1.7.1 .

Но перераспределение возвращает меня обратно в (1), потому что .bundle dir не там.

Бетонные вопросы:

  1. Мне нужно создать / скопировать .bundle / config вручную?
  2. Мне нужно копировать Gemfile / Gemfile.lock. Что произойдет, если я добавлю драгоценные камни? Должен ли я держать двух экземпляров или вручную / программно синхронизировать их?
  3. Что я делаю не так?

Спасибо!

9
задан elado 13 September 2011 в 07:35
поделиться