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
Patricia Arquetteoriginal
2024-12-13 11:02:19688parcourir

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

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

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!

Déclaration:
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