为了账号安全,请及时绑定邮箱和手机立即绑定

无法将 Go 应用程序连接到 docker-compose 中的 postgres 容器

无法将 Go 应用程序连接到 docker-compose 中的 postgres 容器

Go
潇湘沐 2022-06-27 10:02:56
我一直在尝试使用 docker-compose 将我的 go 应用程序连接到 postgresql db。这是我用于 Web 服务器的 DockerfileFROM golang:latestRUN mkdir /appCOPY . /appWORKDIR /appRUN go mod downloadEXPOSE 5000CMD ["go","run","main.go"]这是我的 docker-compose.yml 文件version: '3'services:  db:    image: postgres:latest    restart: always    network_mode: bridge    environment:      POSTGRES_USER: factly      POSTGRES_PASSWORD: qwertyui      POSTGRES_DB: factly    ports:      - "5432:5432"  server:    build: .    depends_on:      - db    ports:      - "5000:5000"但我无法连接到 postgresql 数据库,因为它给出了来自Go serverStarting factly_db_1 ... Starting factly_db_1 ... doneRecreating factly_server_1 ... Recreating factly_server_1 ... doneAttaching to factly_db_1, factly_server_1db_1      | db_1      | PostgreSQL Database directory appears to contain a database; Skipping initializationdb_1      | db_1      | 2020-08-19 06:11:17.151 UTC [1] LOG:  starting PostgreSQL 12.4 (Debian 12.4-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bitdb_1      | 2020-08-19 06:11:17.151 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432db_1      | 2020-08-19 06:11:17.152 UTC [1] LOG:  listening on IPv6 address "::", port 5432db_1      | 2020-08-19 06:11:17.266 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"db_1      | 2020-08-19 06:11:17.906 UTC [26] LOG:  database system was shut down at 2020-08-19 05:56:39 UTCdb_1      | 2020-08-19 06:11:18.213 UTC [1] LOG:  database system is ready to accept connectionsserver_1  | host=127.0.0.1 port=5432 user=factly password=qwertyui dbname=factly sslmode=disableserver_1  | 2020/08/19 06:11:21 dial tcp 127.0.0.1:5432: connect: connection refusedserver_1  | exit status 1factly_server_1 exited with code 1我尝试只运行 postgres 容器并将其与运行良好的 Go 应用程序连接,但在容器内运行 Go 应用程序会产生相同的错误(这让我觉得 Go Web 服务器容器无法连接到它的网络之外) . 我该如何纠正?
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我想问题是你试图127.0.0.1从 go 程序连接,而不是使用数据库容器的主机名db



查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号