Heroku RACK_ENV говорит «разработка» на Thin, но «постановка» на Единорог

Я столкнулся с таким поведением и подумал, видел ли его кто-нибудь еще. У меня есть обходной путь, чтобы это не мешало.

Я создал новое приложение на Heroku со стеком Cedar. При демонстрации нескольких сред я добавил следующую конфигурационную переменную:

heroku config: add RACK_ENV = staging --app appname

Я визуально проверил, что переменная среды установлена, а затем поместила следующий маршрут в мой простой пример Sinatra:

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

Когда я тестировал локально на своем ноутбуке, я получил ожидаемую разработку .

Когда я перешел на Heroku и пошел по тому же маршруту на herokuapp.com, я получил разработку вместо staging .

Я переключил веб-сервер с Thin на Unicorn через Procfile и вернул изменения обратно в Heroku.

Теперь, когда я выбрал маршрут, я получил ожидаемую постановку .

Кто-нибудь еще это видел? Мое обходное решение в другом проекте, в котором я работал с Thin, заключалось в том, чтобы исключить среду из имени приложения New Relic. (Я не переключался на Unicorn, потому что мне нужен New Relic для работы, и в настоящее время Cedar, New Relic и Unicorn работают вместе).

5
задан John Bachir 3 January 2012 в 20:26
поделиться