Docker-Compose Postgres 接続が拒否されました: 接続の問題の解決
pg-admin および Go を使用した Postgres DB を含む docker-compose セットアップでは、 pg-admin は正常に接続できても、Go と Postgres の間で接続の問題が発生する場合があります。この記事では、考えられる原因を詳しく調べ、解決策を示します。
根本原因
この問題は、データベース接続 URI で指定されたホスト名が原因で発生します。環境変数は「postgres」を指していますが、Postgres の Docker コンテナ/サービス名は「database」です。この不一致により、Go は接続を確立できません。
解決策
考えられる解決策は 2 つあります。
オプション 1: コンテナ名を変更する
Docker 構成ファイルを変更してサービスを変更する
オプション 2: 明示的なホスト名フィールドを使用する
または、明示的なホスト名フィールドをPostgres サービス構成:
これらのソリューションのいずれかにより、ホスト名が接続 URI が Postgres コンテナの名前と一致するため、Go は正常に接続を確立できます。
追加の考慮事項
複数のコンテナ サービスが効果的に通信するには、専用ネットワーク。これを行うには、同じネットワーク上に必要な各サービスに「ネットワーク」セクションを追加します。
最後に、構成ファイルの最後にネットワークを定義します。
以上がpgAdmin が正常に接続すると、Go アプリが Docker Compose Postgres への「接続を拒否」されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。