[RAILS] Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)

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.

Afficher le journal de compilation

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 ne semble pas être reconnu comme une application Ruby

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.

Ajouter un pack de construction

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.

Reconstruire. Guéri !!

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

Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)
Que faire si les modifications ne sont pas reflétées après le déploiement automatique vers EC2
Que faire si l'image d'arrière-plan n'est pas appliquée après le déploiement
Que faire si l'archétype mvn: générer échoue
Que faire si l'installation du gem de débogage échoue
Que faire si TextToSpeech ne fonctionne pas sur Android 11
Que faire si FacesMessage est défini mais pas affiché
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
[Ubuntu 20.04] Que faire si le moniteur externe n'est pas reconnu
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
[Logback] Que faire si les fichiers inutiles ne disparaissent pas pendant la rotation
Remarques sur la marche à suivre si l'installation d'Ubuntu 20.04 sur Virtual Box 6.1 (Windows10) échoue avec «Erreur 5 Erreur d'entrée / sortie»
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
Déployer sur Heroku [Ruby on Rails] Débutant
Que faire lorsque le préfixe c n'est pas lié dans JSP
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
il ne reste plus d'espace sur l'appareil Que faire en cas d'erreur
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR
Que faire si le serveur Tomcat meurt
Connexion SSH au serveur d'applications avec heroku
Que faire si vous transmettez des informations incorrectes
Que faire si vous avez installé Java pour OS X sur macOS
Que faire si la création à partir de la ligne de commande échoue dans l'environnement de développement Android
Que faire si le chargement de l'URL SPA ne peut pas être détecté par WebView shouldOverrideUrlLoading
Que faire lors du débogage "Source non trouvée"
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
Que faire si la mise à jour ne prend pas effet après le déploiement de Rails AWS
[Ruby on Rails] S'il y a des enregistrements en double lors de l'enregistrement des données, ne vous enregistrez pas
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire si vous ne trouvez pas votre clé API après le déploiement sur Rails Heroku
Que faire si l'annotation JSON Hint ne fonctionne pas avec Lombok et JSONIC
Que faire si le point d'arrêt est grisé et ne s'arrête pas pendant le débogage
Que faire si le serveur Rails ne peut pas démarrer
Que faire lorsque les balises JSF ne deviennent pas HTML
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Que faire si le serveur rails ne peut pas être arrêté
Que faire si vous créez accidentellement un modèle
[Ruby On Rails] Comment réinitialiser DB dans Heroku
Que faire si une erreur d'analyseur SAX se produit lors de l'utilisation de Liferay 7 / DXP sur AWS
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Recherche d'enregistrements Ruby on Rails, création sinon méthode find_or_create_by
Que faire si la commande adb ne peut pas être exécutée
Que faire si mysql2 obtient une erreur d'installation de bundle
Que faire si la commande rails devient inutilisable
Que faire si vous vous déconnectez en raison d'une erreur de certificat SSL lors de l'exécution de Jenkins sur votre Mac
[Spring Boot] Que faire si une exception HttpMediaTypeNotAcceptableException se produit sur un point de terminaison pour lequel produit est défini
Que faire quand git status indique Modifications non préparées pour la validation: après git add.