Sony George
Sony George

Reputation: 578

Installing Postgres driver in php7-fpm Docker container

I've installed PHP:latest Docker container using the docker-compose command. It installed php-7.1.6-fpm in my Docker. When I tried to install php7-pgsql extension it failed to find that package, instead found pdo and pdo_pgsql packages. That will not satisfy my need. When I search for the available packages in the installed PHP container, I could not find any related pgsql packages for php7, instead, I saw php5-pgsql package, that will not work with php7-fpm.

Finally, I installed php-5.6-fpm container after removing the old one targeting to use php5-pgsql package. But now I disappointed again that I could not find php5-pgsql package in the newly installed container.

I know I'll be missing some important points. Whether Alpine Linux does not have php-pgsql extension. What are the possible ways to include this extension in my PHP container. I've also included Nginx and Postgres in my docker-compose.yml

I've only 3-day theory knowledge in Docker and first-day practical experience.

Thanks for reading.

Upvotes: 11

Views: 17782

Answers (3)

Andrii Sukhoi
Andrii Sukhoi

Reputation: 871

For alpine that helps:

RUN apk add --no-cache postgresql-dev && \
docker-php-ext-install pdo pdo_pgsql

Upvotes: 1

Bernardo Silva
Bernardo Silva

Reputation: 960

I ran into the same issue when I was settings up a new project to use pgsql.

I am using php7, so you should be able to use it as well. On your Dockerfile ensure you're covering the following steps.

Ensure you have the dependencies installed:

RUN apt-get update && apt-get install -y libpq-dev

Configure the extension:

RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql

Install the extension:

RUN docker-php-ext-install pdo pdo_pgsql

Upvotes: 25

Devon Ray
Devon Ray

Reputation: 840

This is an old question i know, but i ran into this today and believe the above solution has changed with php:7.4-fpm-alpine

So where it used to be:

RUN apt-get update && apt-get install -y libpq-dev

Should now be:

RUN apt-get update && apt-get install -y postgresql-dev

Hopefully this helps anyone that runs into the same issue.

Upvotes: 5

Related Questions