У меня есть стек в Elastic Beanstalk, на котором запущен образ «Пассажир с Ruby 2.5, работающий на 64-битной версии Amazon Linux / 2.8.3».Rails это v5.2.1.Желание сделать это промежуточной средой, то есть, чтобы Rails.env возвращал 'staging' и запускался из конфигурации staging.rb.Проблема в том, что, кажется, он работает как «производство», независимо от того, что я делаю.
- Я установил RACK_ENV и RAILS_ENV в качестве переменных конфигурации EB, обе из которых установлены на «промежуточную».Я подтвердил их существование на сервере с помощью «printenv» как ec2-user, webapp и root.
- Я попытался изменить passenger_app_env в конфигурации Пассажира на «подготовка».Я подтвердил, что Passenger Standalone использует правильную конфигурацию, посмотрев на процесс с помощью 'ps aux |grep пассажирский.
- Я попытался переключиться на корневой сервер и вручную выполнить «/etc/init.d/passenger stop», а затем «запустить», и распечатка подтверждает, что Пассажир запускается со своей «средой», настроенной на «staging ':
Я поместил это в environment.rb и добавил переменную конфигурации EB для STAGING, чтобы быть 'true'.:
if ENV['STAGING']
%w(RACK_ENV RAILS_ENV).each do |key|
ENV[key] = 'staging'
end
end
Тем не менее, на тестовой странице, которую я сделал в своем приложении Rails, по-прежнему написано, что Rails.env - это «production» и не использует значения из «staging.rb».И тем не менее, на той же тестовой странице написано, что 'ENV [' RACK_ENV ']' и 'ENV [' RAILS_ENV ']] оба установлены на' staging '.
На данный момент у меня нет идей относительнокак заставить окружение любым другим способом.