首頁 > 後端開發 > Golang > 為什麼我的 Go 應用程式在連接到 Docker Compose Postgres 資料庫時出現「連線被拒絕」錯誤?

為什麼我的 Go 應用程式在連接到 Docker Compose Postgres 資料庫時出現「連線被拒絕」錯誤?

Barbara Streisand
發布: 2024-12-21 01:04:11
原創
115 人瀏覽過

Why Does My Go Application Get a

Docker Compose Postgres 連線拒絕

問題:

問題:

到Docker Compose 上執行的Postgres 資料庫時,出現錯誤「撥號tcp 127.0.0.1:5432: connect: 連線被拒絕」 發生。

解:

問題源自於連接字串中錯誤的主機名稱參考。

主機名稱引用:

資料庫主機名稱在「POSTGRES_HOST」環境變數中被引用為「postgres」。但是,docker-compose 檔案中資料庫的容器/服務名稱是「database」。

解決方案:
  1. 要解決此問題,有兩個選項:
  2. 更改容器/服務名稱: 在docker-compose 中檔案中,將「database」服務名稱變更為「postgres」。

新增顯式主機名稱: 在 docker-compose 檔案中的「database」服務中新增「hostname」字段,明確將其設為「postgres」。

網路配置(可選):
  1. 為了改善服務之間的隔離和通信,建議為資料庫和應用程式容器建立專用網路。為此:
為每個應使用共享網路的服務新增「網路」配置。

在 docker-compose 檔案末尾使用名稱定義網路和可選的選項。

database:
  # ...

  networks:
    - mynet

backend:
  # ...

  networks:
    - mynet

networks:
  mynet:
    name: my-shared-db-network
登入後複製
範例:

以上是為什麼我的 Go 應用程式在連接到 Docker Compose Postgres 資料庫時出現「連線被拒絕」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板