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
151 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!

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