2011-11-30 20 views
13

Estamos implementando con mayúsculas y usando un script que envía USR2 al proceso de unicornio para volver a cargar y normalmente funciona, pero de vez en cuando falla. Cuando eso sucede, buscar en el registro de unicornio revela que está buscando un Gemfile en un antiguo directorio de versiones que ya no existe.Problema de reinicio de unicornio con capistrano

Excepción:

/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) 

Aclarar que no es la versión actual sino uno antiguo que ya ha sido removida.

Cuando funciona, parece que funciona correctamente, es decir, capta el nuevo código, por lo que no creo que esté bloqueado de algún modo al referirse a la versión anterior.

¿Alguna idea?

Respuesta

11

Debe establecer la variable de entorno BUNDLE_GEMFILE antes de iniciar el servidor, apúntelo al current/Gemfile.

23

En su unicorn.rb añadir el bloque before_exec

current_path = "/var/www/html/my project/current" 

before_exec do |server| 
    ENV['BUNDLE_GEMFILE'] = "#{current_path}/Gemfile" 
end 

Leer más sobre ello aquí http://blog.willj.net/2011/08/02/fixing-the-gemfile-not-found-bundlergemfilenotfound-error/

+1

Además, no hay que olvidar que si se cambia el archivo de configuración de unicornio, debe detener manualmente y empezar unicornio nuevamente para cargar la nueva configuración. – lulalala

Cuestiones relacionadas