php エディタ Xiaoxin は最近、Mac 上の Gorm アプリケーションを使用して Docker コンテナ内の PostgreSQL に接続する際の接続の問題に遭遇しました。具体的なパフォーマンスは、DSN が無視されることです。 DSN はデータソース名の略称で、データベース接続情報を指定するために使用されます。データベースに接続できないとアプリケーションが正常に動作しなくなるため、この問題は私を際限なく悩ませます。次に、私が遭遇した問題とその解決策を共有し、皆さんのお役に立てればと思います。
シンプルな gorest API を作成してみます。データベース処理に gorm ライブラリを使用していますが、コンテナ内のデータベースに接続できません。これは Apple チップ上の Docker に問題があるのではないかと思いますが、確かではありません。基本的に同じセットアップを使用する別のプロジェクトがありますが、データベースへの接続にまったく問題はありません。
基本的に、接続パラメータは、DSN 文字列を無視して、実行時に完全に変更されるようです
これは docker-compose.yml
:
これはデータベース接続を行う部分です:
リーリーdsn パラメータは、docker.env
で構成されたパラメータと一致します。 pgadmin は問題なく接続を確立できます。
これは私が受け取ったエラーです。何らかの理由で接続パラメータが完全に変更されたようです:
リーリーdsn 文字列の最後の部分を変更し、コンテナを削除して再作成しようとしましたが、それでも成功しませんでした。
私は単純に、dsn 文字列が mysql と同じ形式であると想定していました。代わりに、次のようになります:
リーリー以上がGorm アプリケーションが DSN を無視して Mac 上の Docker コンテナ内の PostgreSQL に接続できないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。