ホームページ > バックエンド開発 > Golang > Docker Compose Postgres 接続が拒否されました: pgAdmin は機能するのに Go アプリが失敗するのはなぜですか?

Docker Compose Postgres 接続が拒否されました: pgAdmin は機能するのに Go アプリが失敗するのはなぜですか?

Susan Sarandon
リリース: 2024-12-05 13:50:12
オリジナル
364 人が閲覧しました

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

[Docker Compose] Postgres 接続エラー:「接続が拒否されました」の解決

問題:
試行時Docker Compose で実行されている Postgres データベースへの Go 接続を確立しようとすると、「接続が拒否されました」というエラーが発生します。 pg-admin.

理由:
接続文字列はデータベースのホスト名を「postgres」として参照しており、これは Docker Compose のサービス名と一致します。ただし、実際のコンテナ名は「database」です。

解決策:
この問題を解決するには、Docker Compose ファイル内のデータベース コンテナの名前を「postgres」に変更するか、明示的に指定します。ホスト名:

database:
  build: database
  restart: always
  hostname: postgres  # Add this line
ログイン後にコピー

追加考慮事項:

  • ネットワーク: 複数のコンテナー サービスが通信するための専用ネットワークを追加すると、接続が改善される可能性があります。
  • 接続文字列: Go コードの接続文字列 (_str_) に正しい接続文字列が含まれていることを確認してください。ホスト名:

    str := fmt.Sprintf("database://%s:%s@%s:%s/%s?sslmode=disable", user, pass, "postgres", port, dbname)  # Update the hostname to "postgres"
    ログイン後にコピー

以上がDocker Compose Postgres 接続が拒否されました: pgAdmin は機能するのに Go アプリが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート