首页 > 后端开发 > Golang > 为什么我的 Go 应用程序拒绝 Docker Compose 中的 Postgres 连接?

为什么我的 Go 应用程序拒绝 Docker Compose 中的 Postgres 连接?

Patricia Arquette
发布: 2024-12-13 11:02:19
原创
718 人浏览过

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

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板