Docker-Compose:与 Postgres 的连接被拒绝
当从 Docker-compose 设置中通过 pg-admin 连接到 Postgres 时,用户可能会遇到拒绝从 Go 应用程序建立连接的情况。本文深入研究了这个问题并提供了解决方案。
当 Go 应用程序生成的数据库 URL 将数据库主机名引用为“postgres”,而实际的容器/服务名称是“database”时,就会出现此问题。要解决此问题,请考虑更改 compose.yaml 文件中的名称或显式定义主机名字段。例如:
database: build: database restart: always hostname: postgres
或者,为多个容器服务创建专用网络以相互通信,防止连接问题。在每个服务的配置中添加“网络”部分,并在 compose.yaml 末尾定义网络:
database: # ... networks: - mynet backend: # ... networks: - mynet networks: mynet: name: my-shared-db-network
通过实现这些更改,您可以在 Go 应用程序和 Postgres 之间建立连接,同时还可以确保 Docker-compose 环境中的高效通信。
以上是为什么我的 Go 应用程序拒绝 Docker Compose 中的 Postgres 连接?的详细内容。更多信息请关注PHP中文网其他相关文章!