2011-08-07 4 views
5

Me encontré con este comportamiento y me preguntaba si alguien más lo había visto. Tengo una solución, así que no es un show-stopper.Heroku RACK_ENV dice "desarrollo" en Delgado, pero "en escena" en Unicornio

Creé una nueva aplicación en Heroku con una pila de cedro. Cuando demostrando múltiples entornos añadí la siguiente config var:

heroku config:add RACK_ENV=staging --app appname

verifiqué visualmente que se estableció el medio ambiente var, a continuación, poner la ruta siguiente en mi ejemplo sencillo Sinatra:

get '/?' do 
    ENV['RACK_ENV'] 
end 

Cuando probado localmente en mi computadora portátil, recibí el esperado development.

Cuando presioné a Heroku y toqué la misma ruta en herokuapp.com obtuve development en lugar de staging.

Cambié el servidor web de Delgadamente a Unicornio a través del archivo de proceso y devolví los cambios a Heroku.

Ahora cuando toco la ruta, obtengo el staging esperado.

¿Alguien más ha visto esto? Mi solución en otro proyecto en el que estaba ejecutando Thin fue eliminar el medio ambiente del nombre de la aplicación New Relic. (No me cambié a Unicorn porque necesito New Relic para trabajar y actualmente Cedar y New Relic y Unicorn trabajan juntos).

Respuesta

14

Tuve el mismo problema con sinatra y adelgazo en la pila de cedros usando la aplicación sinatra de ejemplo de heroku. El RACK_ENV se niega a ser configurado para nada más que desarrollo. (Heroku parece pensar que está configurado RACK_ENV, ya que ejecutar 'heroku config' muestra el entorno que estableces, sin embargo, en la aplicación siempre está en desarrollo).

La misma aplicación en la pila de bambú no tuvo problemas.

EDIT: Me envió el ticket a heroku sobre esto y obtuvo una respuesta muy rápida, que corrigió el problema para mí:

CITA: Parece que hay un pequeño error en nuestra defecto Procfile si está utilizando Delgado. ¿Puedes crear un archivo de proceso con lo siguiente en él?

web: bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT

+0

Esto lo arregló para mí - ¡salud! –

+0

Hombre - realmente me alegro de haberlo encontrado. Esto solucionó mi nueva integración reliquia – Jonathan

+0

¡Gracias! Pero es increíble que esto no haya sido arreglado por ahora. – Felixyz

4

También puede ajustar tanto su RACK_ENV y RAILS_ENV de puesta en escena usando la gema Heroku ... entonces funciona como se esperaba. Creo que puede ser un problema con Heroku.

Cuestiones relacionadas