Maison >développement back-end >Golang >Pourquoi mon application Golang sur Heroku affiche-t-elle une « erreur d'application » après une construction réussie ?

Pourquoi mon application Golang sur Heroku affiche-t-elle une « erreur d'application » après une construction réussie ?

DDD
DDDoriginal
2024-12-14 07:02:08797parcourir

Why Does My Golang App on Heroku Show an

Déploiement d'une application Golang sur Heroku : réussite de la construction, mais erreur d'application

Lors du déploiement d'une application Golang sur Heroku avec prise en charge des dépendances Go, vous peut rencontrer une « erreur d’application » lors de la tentative d’accès aux points de terminaison. Ce problème survient lorsque le serveur Web n'est pas correctement lié au port approprié sur Heroku.

Les messages de votre journal d'application indiquent l'erreur suivante :

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

Cause :

Le problème est dû à la tentative de démarrage du serveur sur un port codé en dur (9000) au lieu de le lier au port spécifié par Heroku. Variable d'environnement $PORT.

Solution :

Pour résoudre ce problème, démarrez le serveur sur le bon port en utilisant la variable d'environnement $PORT. Remplacez votre code existant :

err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))

Par ce qui suit :

port := os.Getenv("PORT")
if port == "" {
    port = "9000" // Default port if not specified
}
err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))

Cette modification garantit que le serveur se lie correctement au port spécifié par Heroku, résolvant ainsi le problème « Erreur d'application ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn