Maison > développement back-end > Golang > Pourquoi mon application Go obtient-elle une erreur « Connexion refusée » lors de la connexion à une base de données Docker Compose Postgres ?

Pourquoi mon application Go obtient-elle une erreur « Connexion refusée » lors de la connexion à une base de données Docker Compose Postgres ?

Barbara Streisand
Libérer: 2024-12-21 01:04:11
original
218 Les gens l'ont consulté

Why Does My Go Application Get a

Refus de connexion Docker Compose Postgres

Problème :

Lors de la tentative d'établissement d'une connexion à une base de données depuis Aller vers une base de données Postgres exécutée sur Docker Compose, l'erreur "dial tcp 127.0.0.1:5432 : connexion : connexion refusée" se produit.

Solution :

Le problème provient d'un référencement incorrect du nom d'hôte dans la chaîne de connexion.

Référencement du nom d'hôte :

Le nom d'hôte de la base de données est référencé comme "postgres" dans la variable d'environnement "POSTGRES_HOST". Cependant, le nom du conteneur/service de la base de données dans le fichier docker-compose est "database".

Résolution :

Pour résoudre le problème, il existe deux options :

  1. Changez le nom du conteneur/service : Dans le fichier docker-compose, changez la "base de données" nom du service à "postgres."
  2. Ajoutez un nom d'hôte explicite : Ajoutez un champ "nom d'hôte" au service "base de données" dans le fichier docker-compose, en le définissant explicitement sur "postgres. "

Configuration réseau (facultatif) :

Pour une isolation et une communication améliorées entre services, il est recommandé de créer un réseau dédié aux conteneurs de bases de données et d’applications. Pour ce faire :

  1. Ajoutez une configuration "réseaux" à chaque service qui doit utiliser le réseau partagé.
  2. Définissez le réseau à la fin du fichier docker-compose avec un nom et options facultatives.

Exemple :

database:
  # ...

  networks:
    - mynet

backend:
  # ...

  networks:
    - mynet

networks:
  mynet:
    name: my-shared-db-network
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!

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