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

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

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

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 文件中的名称或显式定义主机名字段。例如:

1

2

3

4

database:

  build: database

  restart: always

  hostname: postgres

登录后复制

或者,为多个容器服务创建专用网络以相互通信,防止连接问题。在每个服务的配置中添加“网络”部分,并在 compose.yaml 末尾定义网络:

1

2

3

4

5

6

7

8

9

10

11

12

13

database:

  # ...

  networks:

    - mynet

 

backend:

  # ...

  networks:

    - mynet

 

networks:

  mynet:

    name: my-shared-db-network

登录后复制

通过实现这些更改,您可以在 Go 应用程序和 Postgres 之间建立连接,同时还可以确保 Docker-compose 环境中的高效通信。

以上是为什么我的 Go 应用程序拒绝 Docker Compose 中的 Postgres 连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

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