Maison >développement back-end >Golang >Pourquoi ne puis-je pas me connecter à mon service gRPC dans Docker : « Échec de la réception : connexion réinitialisée par un homologue » ?
Problème d'exposition du port Docker : résolution de « Échec de la réception : réinitialisation de la connexion par un homologue »
Dans un environnement Docker, vous avez rencontré un problème en essayant d'exposer un service gRPC exécuté dans un conteneur. Le service, qui écoute sur le port 8081, ne parvient pas à recevoir les connexions avec l'erreur « Échec de la réception : connexion réinitialisée par un homologue. »
Votre configuration Docker Compose mappe correctement le port 8081 au port interne du conteneur, mais le problème survient en raison à la manière dont le serveur gRPC se lie à son adresse d'écoute. Par défaut, lors de l'utilisation de "http.ListenAndServe("localhost:8081", nil)", le serveur écoute uniquement sur l'interface de bouclage (127.0.0.1). Cela signifie qu'il ne peut accepter que les connexions provenant du conteneur lui-même.
Pour résoudre ce problème, vous pouvez modifier votre application Go pour écouter sur toutes les interfaces. Ceci peut être réalisé en utilisant le code suivant :
http.ListenAndServe("0.0.0.0:8081", nil)
En spécifiant "0.0.0.0", le serveur se liera à toutes les interfaces réseau, lui permettant d'accepter à la fois les connexions de bouclage et externes. Cela garantira que les demandes provenant de l'extérieur du conteneur pourront atteindre votre service gRPC.
Remarques supplémentaires :
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!