Maison > développement back-end > Golang > Pourquoi mon application GoLang Heroku renvoie-t-elle une « erreur d'application » malgré une construction réussie ?

Pourquoi mon application GoLang Heroku renvoie-t-elle une « erreur d'application » malgré une construction réussie ?

Susan Sarandon
Libérer: 2024-12-05 10:00:20
original
937 Les gens l'ont consulté

Why Does My GoLang Heroku App Return an

Déploiement d'une application GoLang sur Heroku : Dépannage de « Erreur d'application »

Question :

Déploiement d'une application GoLang sur Heroku en utilisant la prise en charge de GoDep, la construction réussit mais l'accès au point de terminaison renvoie une « erreur d'application ». L'application s'exécute sur le port 9000 sur localhost, mais grace.Serve semble écouter sur un autre port.

Sortie du journal Heroku :

2019-07-08T05:03:48.131507+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Copier après la connexion

Application Code :

err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))
Copier après la connexion

Réponse :

Le problème est que l'application lie explicitement son serveur Web au port 9000, ce qui entre en conflit avec le port attribué par Heroku. Heroku attribue un port dynamique via la variable d'environnement PORT.

Pour résoudre ce problème, l'application doit attribuer dynamiquement le port en fonction de la variable d'environnement PORT au lieu de coder en dur le port 9000.

Révisé Code d'application :

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

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal