Maison > développement back-end > Golang > Connexion Docker Compose Postgres refusée : pourquoi pgAdmin fonctionne-t-il mais mon application Go échoue ?

Connexion Docker Compose Postgres refusée : pourquoi pgAdmin fonctionne-t-il mais mon application Go échoue ?

Susan Sarandon
Libérer: 2024-12-05 13:50:12
original
363 Les gens l'ont consulté

Docker Compose Postgres Connection Refused: Why Does pgAdmin Work But My Go App Fails?

[Docker Compose] Erreur de connexion Postgres : résolution de la « connexion refusée »

Problème :
Lors de la tentative pour établir une connexion Go à une base de données Postgres exécutée dans Docker Compose, l'erreur "connexion refusée" est rencontrée, malgré la possibilité de se connecter avec succès depuis pg-admin.

Raison :
La chaîne de connexion fait référence au nom d'hôte de la base de données comme "postgres", qui correspond au nom du service dans Docker Compose. Cependant, le nom réel du conteneur est « base de données ».

Solution :
Pour résoudre le problème, renommez le conteneur de base de données dans le fichier Docker Compose en « postgres » ou spécifiez explicitement le nom d'hôte :

database:
  build: database
  restart: always
  hostname: postgres  # Add this line
Copier après la connexion

Supplémentaire Considérations :

  • Réseau : L'ajout d'un réseau dédié pour permettre à plusieurs services de conteneurs de communiquer peut améliorer la connectivité.
  • Chaîne de connexion : Assurez-vous que la chaîne de connexion dans le code Go (_str_) inclut le bon nom d'hôte :

    str := fmt.Sprintf("database://%s:%s@%s:%s/%s?sslmode=disable", user, pass, "postgres", port, dbname)  # Update the hostname to "postgres"
    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