[RAILS] Was tun, wenn die Bereitstellung in Heroku fehlschlägt (Ruby-App nicht erkannt)?

Ich verwende eine selbst erstellte App auf Heroku, bin jedoch auf ein Phänomen gestoßen, das beim Erstellen einen Fehler verursacht hat.

Dies ist ein Heroku-spezifischer Fehler, und es gab nicht viele Informationen im Internet, daher werde ich das Lösungsverfahren zusammenfassen.

Build-Protokoll anzeigen

Zeigen Sie das Build-Protokoll aus Aktivität auf der Konsole an. Beim Vergleich des Protokolls zum Zeitpunkt des Fehlers und des Protokolls zum Zeitpunkt des normalen Ausfalls wird festgestellt, dass die für die Ruby-Anwendung spezifische Build-bezogene Verarbeitung nicht ausgeführt wird, z. B. "Ruby-App erkannt" und "Bundler 2.0.2 installieren" zum Zeitpunkt des Fehlers. verstanden.

** Im Fehlerfall **

-----> nginx-buildpack app detected
./
./nginx
./mime.types
./nginx-debug
-----> nginx-buildpack: Installed nginx/1.18.0 to app/bin
-----> nginx-buildpack: Added start-nginx to app/bin
-----> nginx-buildpack: Added start-nginx-debug to app/bin
-----> nginx-buildpack: Added start-nginx-solo to app/bin
-----> nginx-buildpack: Default mime.types copied to app/config/
-----> nginx-buildpack: Default config copied to app/config.
-----> Discovering process types
       Procfile declares types -> web
-----> Compressing...
       Done: 4.9M
-----> Launching...
       Released v154
       https://supplebox.herokuapp.com/ deployed to Heroku
...Abkürzung

Normal

-----> Ruby app detected
-----> Installing bundler 2.0.2
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.7.1
-----> Installing dependencies using bundler 2.0.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
       [DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set deployment 'true'`, and stop using this flag
       [DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag
       [DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set without 'development:test'`, and stop using this flag
       [DEPRECATED] The --binstubs option will be removed in favor of `bundle binstubs`
       Fetching gem metadata from https://rubygems.org/............
       Using rake 13.0.1
...Abkürzung

Es scheint nicht als Ruby-App erkannt zu werden

Es scheint, dass die Ursache nicht "Ruby App erkannt" ist. Heroku erkannte, dass Rails-Anwendungen automatisch für Ruby erstellt werden, aber ich habe mir die Verarbeitung hier angesehen.

Anscheinend erkennt Heroku automatisch, dass es sich um eine Ruby-Anwendung handelt, anhand des Quellcodes und erstellt die Anwendung automatisch mithilfe einer Reihe von Erstellungsprozessen (Build Packs).

Dieses Ereignis wird dadurch verursacht, dass das Ruby-Buildpack nicht gestartet wird. Daher werde ich versuchen, das Buildpack manuell hinzuzufügen.

Build Pack hinzufügen

https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app#adding-a-buildpack

Überprüfen Sie das aktuelle Build Pack und fügen Sie es unter Bezugnahme auf hinzu.

Ursprünglich gab es ein Build-Pack namens "heroku-community / nginx", aber ich habe die Build-Packs "heroku / nodejs" und "heroku / ruby" installiert, um die Option "index" zu verwenden.

$ heroku buildpacks
=== supplebox Buildpack URL
heroku-community/nginx

$ heroku buildpacks:add --index 1 heroku/nodejs
Buildpack added. Next release on supplebox will use:
  1. heroku/nodejs
  2. heroku-community/nginx
Run git push heroku main to create a new release using these buildpacks.

$ heroku buildpacks:add --index 2 heroku/ruby
Buildpack added. Next release on supplebox will use:
  1. heroku/nodejs
  2. heroku/ruby
  3. heroku-community/nginx
Run git push heroku main to create a new release using these buildpacks.

Wiederaufbauen. Geheilt !!

Heroku scheint nicht in der Lage zu sein, neu zu erstellen. Führen Sie die PR zusammen und stellen Sie sie mit einem leeren Commit erneut bereit.

Und geheilt.

Das Build-Protokoll zeigt "Ruby-App erkannt" an, und die Ruby-bezogenen Builds funktionierten einwandfrei und wurden erfolgreich bereitgestellt.

Herzliche Glückwünsche.

Recommended Posts

Was tun, wenn die Bereitstellung in Heroku fehlschlägt (Ruby-App nicht erkannt)?
Was tun, wenn die Änderungen nach der automatischen Bereitstellung in EC2 nicht übernommen werden?
Was tun, wenn das Hintergrundbild nach der Bereitstellung nicht angewendet wird?
Was tun, wenn mvn archetype: generate fehlschlägt?
Was tun, wenn die Installation des Debug-Gems fehlschlägt?
Was tun, wenn TextToSpeech unter Android 11 nicht funktioniert?
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
[Logback] Was tun, wenn unnötige Dateien während der Rotation nicht verschwinden?
Hinweise, was zu tun ist, wenn die Installation von Ubuntu 20.04 auf Virtual Box 6.1 (Windows 10) mit "Fehler 5 Eingabe- / Ausgabefehler" fehlschlägt.
Was tun, wenn die App nicht mit der neuesten Rails-Version erstellt wurde, die bei neuen Rails installiert wurde?
Bereitstellen für Heroku [Ruby on Rails] Anfänger
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
Kein Platz mehr auf dem Gerät Was tun, wenn ein Fehler auftritt?
Was tun, wenn auf GitHub eine MiniMagick-Sicherheitsanfälligkeitswarnung angezeigt wird?
Was tun, wenn Sie Gemfile oder .bundle / directory nicht finden konnten?
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn der Server-Tomcat stirbt?
SSH-Login beim App-Server mit Heroku
Was tun, wenn Sie falsche Informationen eingeben?
Was tun, wenn Sie Java für OS X unter macOS installiert haben?
Was tun, wenn das Erstellen über die Befehlszeile in der Android-Entwicklungsumgebung fehlschlägt?
Was tun, wenn das Laden der SPA-URL von WebView nicht erkannt werden sollte
Was tun beim Debuggen von "Quelle nicht gefunden"?
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
Was tun, wenn das Update nach der Bereitstellung von Rails AWS nicht wirksam wird?
[Ruby on Rails] Wenn beim Registrieren von Daten doppelte Datensätze vorhanden sind, registrieren Sie sich nicht
Was tun, wenn beim Versuch, Eclipse unter Java 9 auszuführen, ein NoClassDefFoundError angezeigt wird?
Was tun, wenn Sie Ihren API-Schlüssel nach der Bereitstellung auf Rails heroku nicht finden können?
Was tun, wenn die Annotation JSON Hint nicht mit Lombok und JSONIC funktioniert?
Was tun, wenn der Haltepunkt schattiert ist und beim Debuggen nicht stoppt?
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Was tun, wenn JSF-Tags nicht zu HTML werden?
Was tun, wenn beim Starten von Tomcat eine ClassNotFoundException auftritt?
Was tun, wenn der Rails-Server nicht gestoppt werden kann?
Was tun, wenn Sie versehentlich ein Modell erstellen?
[Ruby On Rails] So setzen Sie die Datenbank in Heroku zurück
Was tun, wenn bei Verwendung von Liferay 7 / DXP unter AWS ein SAX-Parser-Fehler auftritt?
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Ruby on Rails-Datensatzsuche, erstellen Sie die Methode find_or_create_by, wenn nicht
Was tun, wenn der Befehl adb nicht ausgeführt werden kann?
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
Was tun, wenn der Befehl Rails unbrauchbar wird?
Was tun, wenn Sie aufgrund eines SSL-Zertifikatfehlers offline gehen, wenn Sie Jenkins auf Ihrem Mac ausführen?
[Spring Boot] Was tun, wenn eine HttpMediaTypeNotAcceptableException auf einem Endpunkt auftritt, für den produziert wird?
Was tun, wenn der Git-Status besagt, dass Änderungen nicht für das Festschreiben bereitgestellt wurden: Nach dem Hinzufügen des Git.