Форман управлява пума в грешна среда

Искам да стартирам puma със следващия Procfile в production среда:

web: bundle exec puma

След това стартирам foreman:

» RAILS_ENV=production foreman start                            
15:47:57 web.1  | started with pid 99864
15:47:57 web.1  | Puma starting in single mode...
15:47:57 web.1  | * Version 2.8.2 (ruby 2.1.1-p76), codename: Sir Edmund Percival Hillary
15:47:57 web.1  | * Min threads: 0, max threads: 16
15:47:57 web.1  | * Environment: development
15:47:58 web.1  | * Listening on tcp://0.0.0.0:9292
15:47:58 web.1  | Use Ctrl-C to stop

Виждате ли този Environment: development ред? Защо не production тук?

Но ако проверя средата с foreman run, тя показва production.

» RAILS_ENV=production foreman run rails runner 'puts Rails.env'
production

foreman проблем ли е, puma проблем или нещо друго?


person mikdiet    schedule 08.05.2014    source източник


Отговори (1)


Намерих решение, както се препоръчва в Проблеми с Puma - да използвам RACK_ENV вместо RAILS_ENV:

» RACK_ENV=production foreman start    
16:04:34 web.1  | started with pid 372
16:04:34 web.1  | Puma starting in single mode...
16:04:34 web.1  | * Version 2.8.2 (ruby 2.1.1-p76), codename: Sir Edmund Percival Hillary
16:04:34 web.1  | * Min threads: 0, max threads: 16
16:04:34 web.1  | * Environment: production
16:04:35 web.1  | * Listening on tcp://0.0.0.0:9292
16:04:35 web.1  | Use Ctrl-C to stop
person mikdiet    schedule 08.05.2014
comment
RACK_ENV не е същото като RAILS_ENV. RAILS_ENV е за вашето приложение и може да бъде development, test, production и т.н. RACK_ENV е, както подсказва името, за стелаж и може да бъде едно от development, deployment или none. Така че правилният начин е RAILS_ENV=production bundle exec puma start -e deployment - person RocketR; 30.10.2014
comment
можеш ли да докажеш това - person mikdiet; 30.10.2014
comment
Вижте github.com/rack/rack/blob /. Има често срещано неразбиране за какво служи RACK_ENV. - person RocketR; 30.10.2014