Dépannage des déploiements échoués

Dépannage des déploiements échoués

Ce que signifie chaque échec sur la page de déploiement, et comment le corriger.

Un déploiement échoué affiche Why it failed en haut de sa page : la cause, le correctif et la ligne de log qui le prouve. Chaque cause est expliquée ici.

Le build a manqué de temps

Le build a été arrêté à sa limite de temps (60 minutes). La prochaine tentative réutilise ce qui a déjà été construit. Si ça continue d’arriver, le build a besoin de plus de mémoire ou de CPU, voir méthodes de build.

Le build a manqué de mémoire

Une étape du build a été tuée pour avoir utilisé plus de mémoire que n’en a le serveur de build. Railyard ajuste déjà les builds à la machine automatiquement. Un serveur de build plus grand, ou le déploiement de l’image déjà publiée du projet, permet d’éviter ça.

L'application a démarré, mais n'a jamais répondu

Le conteneur tourne, mais rien n’a répondu en HTTP. L’application doit écouter sur 0.0.0.0 et sur le port indiqué dans $PORT. Vérifiez le port sous Settings, et que la commande de démarrage ne se lie pas à 127.0.0.1.

Une dépendance manque à l'exécution

Le code a besoin d’un paquet absent de l’image, le plus souvent parce que le mauvais framework a été détecté ou que la commande s’exécute hors du dossier de l’application. Vérifiez la méthode de build et la commande de démarrage.

La commande s'est exécutée dans le mauvais dossier

L’image ne contient pas l’application là où la commande l’attendait. Si le Dockerfile du dépôt ne sert qu’au développement, utilisez plutôt Railpack pour le build.

L'application a besoin d'identifiants pour un service externe

Elle appelle un service tiers (stockage cloud, courriel, paiements…) et n’a pas de clé pour ça. Ajoutez les variables de ce service sous Variables.

L'utilisateur de la base de données manque d'une permission

Une migration a besoin d’une permission que l’utilisateur de base de données de l’application n’a pas. Redéployez une fois : les droits sont actualisés à chaque déploiement.

La base de données était inaccessible

L’application n’a pas pu joindre sa base de données. Si c’est arrivé pendant le build, c’est que l’application se connecte à sa base de données à la compilation, ce que les builds ne peuvent pas faire.

Une variable requise n'est pas définie

L’application s’arrête au démarrage parce qu’une variable dont elle a besoin est vide. Ajoutez-la sous Variables.

L'image n'a pas pu être récupérée

Le registre a refusé l’image : elle n’existe pas, l’étiquette est erronée, ou elle est privée et a besoin d’identifiants sous Settings → Source.

Le nom de l'image est invalide

La référence de l’image contient des caractères que Docker n’accepte pas. Vérifiez l’URL du dépôt ou le nom de l’image.

L'étape de mise en production a échoué

La commande qui s’exécute avant que la nouvelle version ne passe en production, le plus souvent des migrations, s’est terminée avec une erreur. La première ligne d’erreur est affichée sur la page de déploiement.

Le build a échoué

Une étape du build s’est terminée avec une erreur; la première ligne d’erreur est affichée sur la page de déploiement.