Ошибка H10 при развертывании приложения Sinatra в Heroku

Я не могу развернуть свое приложение на Heroku. Так разочаровывает.

Вот репозиторий: ссылка на репозиторий

Что я пробовал:

  • Я обновил свой config.ru всем, что мне нужно, на странице развертывания heroku, найденной здесь
  • Я пробежал heroku run rake db:migrate
  • Я запустил heroku restart
  • Я убедился, что у меня есть обновленный gemfile
  • Я дважды проверил, что у меня есть операторы «require» в моем app.rb.

Есть мысли? Мои журналы ошибок, которые я получаю, приведены ниже:

2014-11-02T03:46:07.404128+00:00 heroku[api]: Deploy bbe19c1 by [email protected]
2014-11-02T03:46:07.404202+00:00 heroku[api]: Release v17 created by [email protected]
2014-11-02T03:46:08.439283+00:00 heroku[web.1]: State changed from crashed to starting
2014-11-02T03:46:11.353727+00:00 heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 43798`
2014-11-02T03:46:13.210413+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
2014-11-02T03:46:13.210411+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
2014-11-02T03:46:13.210388+00:00 app[web.1]: /app/config.ru:1:in `require': cannot load such file -- ./gifinder (LoadError)
2014-11-02T03:46:13.210410+00:00 app[web.1]:    from /app/config.ru:1:in `block in <main>'
2014-11-02T03:46:13.210424+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/server.rb:199:in `app'
2014-11-02T03:46:13.210425+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app'
2014-11-02T03:46:13.210414+00:00 app[web.1]:    from /app/config.ru:in `new'
2014-11-02T03:46:13.210415+00:00 app[web.1]:    from /app/config.ru:in `<main>'
2014-11-02T03:46:13.210417+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval'
2014-11-02T03:46:13.210419+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file'
2014-11-02T03:46:13.210418+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string'
2014-11-02T03:46:13.210421+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config'
2014-11-02T03:46:13.210427+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/server.rb:250:in `start'
2014-11-02T03:46:13.210430+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/server.rb:141:in `start'
2014-11-02T03:46:13.210432+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/bin/rackup:4:in `<top (required)>'
2014-11-02T03:46:13.210434+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/bin/rackup:23:in `load'
2014-11-02T03:46:13.210437+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/bin/rackup:23:in `<main>'
2014-11-02T03:46:13.977897+00:00 heroku[web.1]: State changed from starting to crashed
2014-11-02T03:46:13.970947+00:00 heroku[web.1]: Process exited with status 1
2014-11-02T03:46:15.252296+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=gifinder.herokuapp.com request_id=7106f663-fa15-4c74-ab8e-f5df75030a55 fwd="174.129.111.111" dyno= connect= service= status=503 bytes=
2014-11-02T03:46:42.265175+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=gifinder.herokuapp.com request_id=900cbb04-7ee9-4392-9f2f-7d4e833b15c0 fwd="24.43.108.83" dyno= connect= service= status=503 bytes=
2014-11-02T03:46:43.407062+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=gifinder.herokuapp.com request_id=ce46eed0-4a7f-4633-81ec-c826a3c90e30 fwd="24.43.108.83" dyno= connect= service= status=503 bytes=

person JohnSalzarulo    schedule 02.11.2014    source источник


Ответы (2)


Ваш файл config.ru пытается загрузить несуществующий файл с оператором require. Измените эту строку require './gifinder' на:

require './app'

или измените имя файла app.rb на gifinder.rb. Вы также должны последовать совету iain и удалить двойной Gemfile.lock, потому что это обязательно вызовет проблемы.

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

require 'httparty'
person Lukas Eklund    schedule 03.11.2014
comment
Получил ваш репозиторий и заставил его работать, обновив требование для HTTParty. Сообщение обновлено тем, что сработало для меня. - person Lukas Eklund; 10.11.2014

Я не знаю, как ты это сделал, но у тебя есть два Gemfile.lock. Я бы удалил их обоих и повторно запустил Bundler, причем git rm тот, которого там быть не должно.

Также обратите внимание, что Heroku теперь использует procfiles более широко, чем раньше, поэтому приобретите Foreman и определить procfile.


Кроме того, когда я запускаю bundle install --binstubs --path=vendor, я получаю это сообщение:

Сообщение после установки от heroku: ! Драгоценный камень heroku устарел и заменен поясом для инструментов Heroku. ! Загрузите и установите с: https://toolbelt.heroku.com! Для доступа к API см.: https://github.com/heroku/heroku.rb

поэтому удалите gem 'heroku', '~> 3.15.0' из Gemfile и require 'heroku' (который в любом случае никогда не был нужен в приложении) из app.rb. Когда я это делаю, команда bin/rackup config.ru отлично запускает приложение на localhost:9292.

person iain    schedule 03.11.2014
comment
@JohnSalzarulo Я обновил ответ тем, что сработало для меня. - person iain; 10.11.2014
comment
Похоже, у меня тоже была эта проблема. Не знаю, как это произошло. Спасибо. - person JohnSalzarulo; 13.11.2014