Docker-Compose: Postgres への接続が拒否されました
Docker-compose セットアップ内から pg-admin 経由で Postgres に接続すると、ユーザーはGo アプリケーションからの接続確立の拒否に遭遇しました。この記事では、この問題について詳しく掘り下げ、解決策を示します。
この問題は、Go アプリケーションによって生成されたデータベース URL がデータベースのホスト名を「postgres」として参照しているのに、実際のコンテナ/サービス名が「database」である場合に発生します。これを解決するには、compose.yaml ファイル内の名前を変更するか、ホスト名フィールドを明示的に定義することを検討してください。例:
database: build: database restart: always hostname: postgres
または、複数のコンテナ サービスが相互に通信するための専用ネットワークを作成し、接続の問題を防ぎます。各サービスの構成に「ネットワーク」セクションを追加し、compose.yaml の最後にネットワークを定義します:
database: # ... networks: - mynet backend: # ... networks: - mynet networks: mynet: name: my-shared-db-network
これらの変更を実装することで、Go アプリケーションと Postgres の間の接続を確立できます。 Docker-compose 環境内で効率的な通信を確保します。
以上がGo アプリケーションが Docker Compose で Postgres 接続を拒否するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。