Maison >développement back-end >Golang >Pourquoi mon application GoLang Heroku renvoie-t-elle une « erreur d'application » malgré une construction réussie ?
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!