Pregunta

Estamos implementando con CAP y utilizando un script que envía USR2 al proceso de Unicornio para recargar y generalmente funciona, pero de vez en cuando fallará. Cuando eso sucede, mirar en el registro de unicornio revela que está buscando un archivo gem en un antiguo directorio de liberación que ya no existe.

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)

Para aclarar que no es la versión actual, sino una más antigua que se ha eliminado desde entonces.

Cuando funciona, parece funcionar correctamente, es decir, recoge el nuevo código, por lo que no creo que de alguna manera esté atascado refiriéndose a la versión anterior.

¿Algunas ideas?

¿Fue útil?

Solución

Deberías establecer el BUNDLE_GEMFILE Variable de entorno antes de iniciar el servidor, apírtelo en current/Gemfile.

Otros consejos

En su unicornio.rb agregue el bloque anterior_exec

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

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top