Ich habe gerade versucht, meine App auf Heroku bereitzustellen. Es funktioniert schon eine ganze Weile, ich füge nur einige neue Funktionen hinzu. Sobald ich das Deployment durchgeführt habe, bekam ich die Fehlermeldung "App Crashed". heroku logs
gezeigt No such file to load -- nokogiri (LoadError)
.
Nun auf meinem System, mein Gemfile.lock
zeigte 2 verschiedene nokogiri-edelsteine: nokogiri (~> 1.5.0)
eine Abhängigkeit von fog (1.4.0)
und nokogiri (1.5.5-x86-mingw32)
was scheint keine Abhängigkeit von irgendetwas zu sein. Unter Plattformen war nur x86-mingw32
. Mein Entwicklungsrechner ist Windows 7 mit ruby 1.9.3p194
und die Ruby-Version, die der Heroku-Toolbalt für sich selbst verwendet heroku-toolbelt/2.30.1 (i386-mingw32) ruby/1.9.2
.
Meine Version von Bundler war auf dem neuesten Stand, meine Version des Heroku Toolbelt auf dem neuesten Stand. Ich habe versucht zu löschen Gemfile.lock
und nach den Ratschlägen einiger Forenbeiträge erneut bereitgestellt, aber die App war immer noch abgestürzt.
Es scheint, dass Heroku in der richtigen Version von nokogiri einfach nicht gebündelt wurde, sondern es wegen meiner Verwendung von Windows ignorierte. Die Art, wie ich repariert werden musste, wurde hinzugefügt gem "nokogiri", "~> 1.5.5"
zu meinem gemfile (obwohl meine app nicht explizit nokogiri benötigt, ist es nur eine abhängigkeit) und dann wieder auf Heroku implementiert, ohne zu laufen bundle install
auf meinem eigenen System zuerst. Nun stürzt die App nicht ab.
Ich habe keine Ahnung, warum das funktioniert hat. Ich weiß nicht, wie ich sicherstellen kann, dass das Problem nicht erneut auftritt. Ich habe gerade zufällig mit einem verzweifelten Patch Glück gehabt. Ich kann diese Ausfallzeit in der Zukunft nicht mehr haben oder mir Sorgen machen, dass so etwas bei einem Routineeinsatz erneut auftritt. Kann jemand bitte erklären, was wirklich falsch war und was Recht Weg, um es zu lösen?
Antworten:
0 für die Antwort № 1Füge das hinzu
PLATFORMS
x86-mingw32
in dein Gemfile. Heroku ignoriert dann Ihre Gemfile.lock
weil Windows verrückte unterschiedliche Abhängigkeiten hat.