Мое руководство по Rails (глава 7) Развертывание Heroku с puma продолжает падать

Это мой первый вопрос здесь, поэтому я надеюсь, что я в рамках правил.

Я только что закончил главу 7 учебника Michale Hartl Rails Tutorial. Мое приложение sample_app работает локально и до этого момента работало на Heroku.

В конце главы находится раздел под названием «7.5 Развертывание профессионального уровня». Это переключает производственную среду на SSL и веб-сервер Puma.

В следующем коде показаны изменения, внесенные мной в рамках этого раздела, которые привели к тому, что приложение не работает на Heroku.

config/environments/production.rb — раскомментировала эту строку, чтобы включить SSL.

config.force_ssl = true

Gemfile — добавлен Puma

group :production do
  gem 'pg', '0.17.1'
  gem 'rails_12factor', '0.0.2'
  gem 'puma', '2.11.1'
end

config/puma.rb — я скопировал это прямо с сайта Heroku после того, как копирование из pdf-файла Rails Tutorial не удалось

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

Создал Procfile

web: bundle exec puma -C config/puma.rb

После фиксации, отправки в Heroku и переноса базы данных я получаю страницу с надписью «Ошибка приложения».

Это вывод журналов heroku:

2015-05-14T11:55:46.257652+00:00 heroku[web.1]: Starting process with command `bundle exec puma -C config/puma.rb`
2015-05-14T11:55:48.438024+00:00 app[web.1]: ...                               ^
2015-05-14T11:55:48.438026+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/puma-2.11.1/lib/puma/configuration.rb:179:in `_load_from'
2015-05-14T11:55:48.438029+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/puma-2.11.1/lib/puma/configuration.rb:40:in `load'
2015-05-14T11:55:48.438035+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/puma-2.11.1/bin/puma:10:in `<top (required)>'
2015-05-14T11:55:48.438034+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/puma-2.11.1/lib/puma/cli.rb:453:in `run'
2015-05-14T11:55:48.438017+00:00 app[web.1]: /app/vendor/bundle/ruby/2.2.0/gems/puma-2.11.1/lib/puma/configuration.rb:179:in `instance_eval': config/puma.rb:1: syntax error, unexpected tIDENTIFIER, expecting end-of-input (SyntaxError)
2015-05-14T11:55:48.438040+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/bin/puma:23:in `<main>'
2015-05-14T11:55:48.438031+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/gems/puma-2.11.1/lib/puma/cli.rb:308:in `parse_options'
2015-05-14T11:55:48.438039+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.2.0/bin/puma:23:in `load'
2015-05-14T11:55:48.437914+00:00 app[web.1]: config/puma.rb:1: warning: encountered \r in middle of line, treated as a mere space
threads_count = Integer(ENV['MAX_THREADS']......NCURRENCY'] || 2)
2015-05-14T11:55:49.211862+00:00 heroku[web.1]: Process exited with status 1
2015-05-14T11:55:49.223366+00:00 heroku[web.1]: State changed from starting to crashed

Из-за «синтаксической ошибки» у меня создается впечатление, что с моим файлом config/puma.rb что-то не так, но я не могу понять, что именно.

Я попытался указать номер версии Ruby, но это не помогло.

Что с этим не так и как мне это исправить?


person Neil Wheatley    schedule 14.05.2015    source источник
comment
Может возникнуть проблема с копированием текста с веб-сайта в редактор с добавлением дополнительных пробелов, как описано в stackoverflow.com/questions/18946105/ Попробуйте ввести содержимое config/puma.rb с нуля.   -  person Prakash Murthy    schedule 14.05.2015
comment
Спасибо, я повторно набрал все пробелы и разрывы строк, так как у меня была эта проблема раньше. Но я думаю, что теперь я попытаюсь перепечатать весь документ. (Я начал использовать Atom недавно, и до сих пор с ним не было таких проблем.)   -  person Neil Wheatley    schedule 14.05.2015
comment
Пробовал перепечатать, не помогло :(   -  person Neil Wheatley    schedule 14.05.2015


Ответы (2)


У меня была точно такая же проблема, и я потратил на это серьезную отдачу. В файле config/puma.rb был дублированный код. Каким-то образом код был добавлен в конец файла.

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

person Laurie    schedule 31.01.2017

Пракаш Мурти в значительной степени ответил мне на это - спасибо.

Сначала пробовал перепечатать содержимое puma.rb - не получилось.

Тогда я решил попробовать вообще удалить puma.rb и набрать его с нуля в новом файле. Как ни странно, это сработало!

Мой текстовый редактор Atom. Надеюсь, это больше не повторится.

person Neil Wheatley    schedule 14.05.2015