Maison > développement back-end > Golang > Pourquoi mon application Go refuse-t-elle une connexion Postgres dans Docker Compose ?

Pourquoi mon application Go refuse-t-elle une connexion Postgres dans Docker Compose ?

Patricia Arquette
Libérer: 2024-12-13 11:02:19
original
689 Les gens l'ont consulté

Why Does My Go Application Refuse a Postgres Connection in Docker Compose?

Docker-Compose : connexion à Postgres refusée

Lors de la connexion à Postgres via pg-admin à partir d'une configuration Docker-compose, les utilisateurs peuvent rencontrent un refus d’établir une connexion depuis leur application Go. Cet article se penche sur ce problème et propose une solution.

Le problème survient lorsque l'URL de la base de données générée par l'application Go fait référence au nom d'hôte de la base de données comme « postgres », alors que le nom réel du conteneur/service est « base de données ». Pour résoudre ce problème, envisagez de modifier le nom dans le fichier compose.yaml ou de définir explicitement un champ de nom d'hôte. Par exemple :

database:
  build: database
  restart: always
  hostname: postgres
Copier après la connexion

Vous pouvez également créer un réseau dédié pour que plusieurs services de conteneurs communiquent entre eux, évitant ainsi les problèmes de connexion. Ajoutez une section « réseaux » à la configuration de chaque service et définissez le réseau à la fin du compose.yaml :

database:
  # ...
  networks:
    - mynet

backend:
  # ...
  networks:
    - mynet

networks:
  mynet:
    name: my-shared-db-network
Copier après la connexion

En implémentant ces modifications, vous pouvez établir une connexion entre votre application Go et Postgres tout en assurer une communication efficace au sein de l'environnement Docker-compose.

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