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
Susan Sarandonoriginal
2024-12-05 10:00:20936parcourir

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

Application Code :

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

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))

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