J'exécute une application auto-créée sur Heroku, mais j'ai rencontré un phénomène qui a provoqué une erreur lors de la construction.
Il s'agit d'une erreur spécifique à Heroku, et il n'y avait pas beaucoup d'informations sur Internet, je vais donc résumer la procédure de résolution.
Affichez le journal de génération à partir de l'activité sur la console.
En comparant le journal au moment de l'échec et le journal au moment normal, il s'avère que le traitement lié à la construction propre à l'application Ruby n'est pas effectué, tel que Ruby app détectée
et ʻInstalling bundler 2.0.2` au moment de l'échec. compris.
** En cas de défaillance **
-----> 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
...Abréviation
Ordinaire
-----> 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
...Abréviation
Il semble que la cause ne soit pas «Application Ruby détectée». Heroku a reconnu que les applications Rails se construiraient automatiquement pour Ruby, mais j'ai examiné le traitement ici.
--À propos du buildpack de Heroku https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app#adding-a-buildpack
Apparemment, Heroku détecte automatiquement qu'il s'agit d'une application Ruby à partir du code source et construit automatiquement l'application en utilisant une série de processus de construction (build packs).
Cet événement est dû au fait que le pack de build Ruby ne démarre pas, donc j'essaierai d'ajouter le pack de build manuellement.
https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app#adding-a-buildpack
Vérifiez le pack de construction actuel et ajoutez-le en vous référant à.
À l'origine, il y avait un pack de construction appelé heroku-community / nginx
, mais j'ai installé les packs de construction heroku / nodejs
et heroku / ruby
dans l'ordre en utilisant l'option ʻindex`.
$ 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 ne semble pas capable de reconstruire, alors fusionnez et redéployez le PR avec un commit vide.
Et guéri.
Le journal de construction indique que l'application Ruby a été détectée et les versions associées à Ruby ont bien fonctionné et ont été déployées avec succès.
Toutes nos félicitations.
Recommended Posts