Ответ 1
Вы должны установить переменную среды BUNDLE_GEMFILE
, прежде чем запускать сервер, наведите указатель на current/Gemfile
.
Мы развертываем с кешем и используем script, которые отправляют USR2 в процесс единорога для перезагрузки, и обычно он работает, но каждый раз он будет терпеть неудачу. Когда это происходит, поиск в журнале единорога показывает, что он ищет Gemfile в старой папке выпуска, которая больше не существует.
Исключение:
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/definition.rb:14:in `build': /var/www/railsapps/inventory/releases/20111128233407/Gemfile not found (Bundler::GemfileNotFound)
Чтобы прояснить, что не текущая версия, а более старая, которая была удалена.
Когда он работает, он работает корректно, то есть записывает новый код, поэтому я не думаю, что он как-то застрял со ссылкой на старый выпуск.
Любые идеи?
Вы должны установить переменную среды BUNDLE_GEMFILE
, прежде чем запускать сервер, наведите указатель на current/Gemfile
.
В вашем unicorn.rb добавьте блок before_exec
current_path = "/var/www/html/my project/current"
before_exec do |server|
ENV['BUNDLE_GEMFILE'] = "#{current_path}/Gemfile"
end
Подробнее об этом читайте здесь http://blog.willj.net/2011/08/02/fixing-the-gemfile-not-found-bundlergemfilenotfound-error/