Ich bemerkte, dass heroku einen mysteriösen Fehler erzeugt, wenn ich meine sinatra-App bereitstelle. Es arbeitet vor Ort in Ordnung, und in der Tat, es läuft auf Heroku auch gut - aber dieser Fehler erscheint in der Heroku jedes Mal anmeldet ich einsetzen (und nur auf deploy):Mysteriöser Fehler bei der Bereitstellung der Sinatra-App auf Heroku: Bundler: Befehl konnte nicht geladen werden: rackup
2017-04-26T08:52:25.579045+00:00 app[web.1]: bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.3.0/bin/rackup)
2017-04-26T08:52:25.579176+00:00 app[web.1]: RuntimeError: missing run or map statement
2017-04-26T08:52:25.579178+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:146:in `to_app'
2017-04-26T08:52:25.579179+00:00 app[web.1]: /app/config.ru:5:in `<main>'
2017-04-26T08:52:25.579180+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:49:in `eval'
2017-04-26T08:52:25.579180+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:49:in `new_from_string'
2017-04-26T08:52:25.579181+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:40:in `parse_file'
2017-04-26T08:52:25.579182+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/server.rb:299:in `build_app_and_options_from_config'
2017-04-26T08:52:25.579183+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/server.rb:208:in `app'
2017-04-26T08:52:25.579184+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/server.rb:336:in `wrapped_app'
2017-04-26T08:52:25.579184+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/server.rb:272:in `start'
2017-04-26T08:52:25.579185+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/server.rb:147:in `start'
2017-04-26T08:52:25.579186+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/bin/rackup:4:in `<top (required)>'
2017-04-26T08:52:25.579187+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/bin/rackup:23:in `load'
2017-04-26T08:52:25.579215+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/bin/rackup:23:in `<top (required)>'
2017-04-26T08:52:25.724981+00:00 heroku[web.1]: Process exited with status 1
2017-04-26T08:52:26.928566+00:00 heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 56963`
2017-04-26T08:52:29.278571+00:00 app[web.1]: [2017-04-26 08:52:29] INFO WEBrick 1.3.1
2017-04-26T08:52:29.278590+00:00 app[web.1]: [2017-04-26 08:52:29] INFO ruby 2.3.1 (2016-04-26) [x86_64-linux]
2017-04-26T08:52:29.278909+00:00 app[web.1]: == Sinatra (v1.4.8) has taken the stage on 56963 for production with backup from WEBrick
2017-04-26T08:52:29.279274+00:00 app[web.1]: [2017-04-26 08:52:29] INFO WEBrick::HTTPServer#start: pid=4 port=56963
2017-04-26T08:52:29.825875+00:00 heroku[web.1]: State changed from starting to up
Andere Beiträge deuten darauf hin, dass dies aufgrund eines Fehlers in config.ru
sein. Mine enthält einfach:
require './lib/app'
SinatraApp.run!
Hier ist mein Procfile
:
web: bundle exec rackup config.ru -p $PORT
Die heroku deploy log is here, falls es ist hilfreich. Wie gesagt, die App scheint gut zu funktionieren (Sie können sehen, dass sie am Ende des obigen Transkripts erfolgreich gestartet wird), aber ich kann nicht verstehen, was diesen Fehler bei jeder Bereitstellung verursacht.
Danke.
Sind bereitstellen bereitgestellt 'config.ru'? Die Rückverfolgung schlägt vor, dass es mindestens 5 Zeilen hat: '/app/config.ru:5:in', und die Quelle, die Sie eingeschlossen haben, hat nur zwei Zeilen. –
Guter Punkt. Das habe ich auch bemerkt. Es gibt nur ein 'config.ru' in meinem Projekt (ich habe es überprüft). Stellt Heroku eine Art von 'config.ru' bereit? Ich kann in den heroku-Dokumenten keinen Hinweis darauf finden, und wenn ich mich mit meinem Prüfstand verbinde und die Datei untersuche, ist sie unverändert. –