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.
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, 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.
Über Herokus Ruby-Unterstützung https://devcenter.heroku.com/articles/ruby-support#rails-6-x-applications
Über Herokus Buildpack https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app#adding-a-buildpack
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.
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.
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