アラキタウン

黒歴史や生き恥を切り売り

DockerでPHP、ホストのpostgreSQLへの接続環境を作成した際、could not find driver と could not connect to server

could not find driverとなった際にphpinfo()で確認すると、PDOの欄にpgsqlが表示されていなかったため、

f:id:alakialaca:20211124185016p:plain

docker exec -t -i コンテナ名 /bin/bash
でコンテナの中に入り

PostgreSQLクライアントとライブラリをインストール
apt-get install postgresql-client
apt-get update && apt-get install -y libpq-dev && docker-php-ext-install pdo pgsql pdo_pgsql


could not connect to serverが表示された場合、

接続先のアドレスの指定を、「host.docker.internal」で指定すると接続できました。
これでホストを指定できるのですね。

 

コンテナから、以下でホストのpostgreSQLコマンドプロンプトで接続できました。
psql -U postgres -h host.docker.internal -p 5432