在 php7-fpm Docker 容器中安装 Postgres 驱动程序

问题描述 投票:0回答:3

我已经使用 docker-compose 命令安装了

PHP:latest
Docker 容器。它在我的 Docker 中安装了
php-7.1.6-fpm
。当我尝试安装
php7-pgsql
扩展时,它找不到该软件包,而是找到了
pdo
pdo_pgsql
软件包。那不能满足我的需要。当我在已安装的 PHP 容器中搜索可用的软件包时,我找不到
php7
的任何相关 pgsql 软件包,相反,我看到了
php5-pgsql
软件包,它不适用于 php7-fpm。

最后,我在删除旧的目标以使用

php5-pgsql
包后安装了 php-5.6-fpm 容器。但现在我再次失望了,在新安装的容器中找不到
php5-pgsql
包。

我知道我会遗漏一些重要的要点。 Alpine Linux 是否没有

php-pgsql
扩展。有哪些可能的方法可以将此扩展包含在我的 PHP 容器中。我还在我的 docker-compose.yml 中包含了 Nginx 和 Postgres

我只有 3 天的 Docker 理论知识和第一天的实践经验。

感谢您的阅读。

php postgresql docker
3个回答
25
投票

当我设置一个新项目来使用 pgsql 时,我遇到了同样的问题。

我使用的是php7,所以你应该也可以使用它。在您的 Dockerfile 上,确保您涵盖以下步骤。

确保已安装依赖项:

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

配置扩展:

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

安装扩展:

RUN docker-php-ext-install pdo pdo_pgsql

5
投票

这是我知道的一个老问题,但我今天遇到了这个问题,并相信上述解决方案已随 php:7.4-fpm-alpine 改变了

它曾经在哪里:

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

现在应该是:

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

希望这对遇到同样问题的人有所帮助。


0
投票

对于高山有帮助:

RUN apk add --no-cache postgresql-dev && \
docker-php-ext-install pdo pdo_pgsql
© www.soinside.com 2019 - 2024. All rights reserved.