Rumah >pembangunan bahagian belakang >Golang >Sambungan Docker Compose Postgres Ditolak: Mengapa pgAdmin Berfungsi Tetapi Aplikasi Go Saya Gagal?

Sambungan Docker Compose Postgres Ditolak: Mengapa pgAdmin Berfungsi Tetapi Aplikasi Go Saya Gagal?

Susan Sarandon
Susan Sarandonasal
2024-12-05 13:50:12373semak imbas

Docker Compose Postgres Connection Refused: Why Does pgAdmin Work But My Go App Fails?

[Docker Compose] Ralat Sambungan Postgres: Menyelesaikan "sambungan ditolak"

Masalah:
Apabila mencuba untuk mewujudkan sambungan Go ke pangkalan data Postgres yang berjalan dalam Docker Compose, ralat "sambungan ditolak" ditemui, walaupun berjaya menyambung daripada pg-admin.

Sebab:
Rentetan sambungan merujuk nama hos pangkalan data sebagai "postgres," yang sepadan dengan nama perkhidmatan dalam Docker Compose. Walau bagaimanapun, nama bekas sebenar ialah "pangkalan data."

Penyelesaian:
Untuk menyelesaikan isu, sama ada menamakan semula bekas pangkalan data dalam fail Docker Compose kepada "postgres" atau nyatakan secara jelas nama hos:

database:
  build: database
  restart: always
  hostname: postgres  # Add this line

Tambahan Pertimbangan:

  • Rangkaian: Menambah rangkaian khusus untuk berbilang perkhidmatan kontena untuk berkomunikasi boleh meningkatkan ketersambungan.
  • Rentetan Sambungan : Pastikan rentetan sambungan dalam kod Go (_str_) termasuk yang betul nama hos:

    str := fmt.Sprintf("database://%s:%s@%s:%s/%s?sslmode=disable", user, pass, "postgres", port, dbname)  # Update the hostname to "postgres"

Atas ialah kandungan terperinci Sambungan Docker Compose Postgres Ditolak: Mengapa pgAdmin Berfungsi Tetapi Aplikasi Go Saya Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn