Unicornio de reinicio de unicornio con Capistrano
-
26-10-2019 - |
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?
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/