Maison > développement back-end > Golang > Pourquoi mon application Go est-elle construite avec succès sur Heroku mais échoue-t-elle avec une « erreur d'application » ?

Pourquoi mon application Go est-elle construite avec succès sur Heroku mais échoue-t-elle avec une « erreur d'application » ?

DDD
Libérer: 2024-12-17 05:28:24
original
183 Les gens l'ont consulté

Why Does My Go App Build Successfully on Heroku But Fail with an

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

Les premières tentatives de déploiement d'une application GoLang sur Heroku à l'aide du support Godep ont abouti à une construction réussie mais une « Erreur d'application » lors de l'accès au point de terminaison de l'application. Pour résoudre ce problème, examinons le problème et sa solution.

Présentation du problème :

L'application déployée ne répond pas lors de l'accès à son point de terminaison (par exemple, '/ '). Les journaux Heroku affichent une erreur indiquant que « Le processus Web n'a pas réussi à se lier à $PORT ».

Solution :

Heroku demande aux applications de lier leurs serveurs Web au port. spécifié par la variable d'environnement PORT. Cependant, le code de l'application démarre actuellement le serveur sur le port 9000.

Pour résoudre ce problème, le serveur de l'application doit être démarré sur le PORT spécifié par Heroku. Voici comment procéder :

import "os"

func main() {
  // ... (your existing code)

  // Get the port from the PORT environment variable, or default to 9000 if not set
  port := os.Getenv("PORT")
  if port == "" {
      port = "9000" // Default port if not specified
  }

  // Start the server on the specified port
  err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))

  // ... (your existing code)
}
Copier après la connexion

En se liant au bon port, l'application ne rencontrera plus l'erreur « Boot timeout » et sera en mesure de répondre avec succès aux requêtes sur les ports HTTP et HTTPS via Heroku. passerelles.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal