在docker容器中安装PHP 7扩展

时间:2016-09-22 16:25:27

标签: php postgresql pdo docker

我使用https://hub.docker.com/_/php/创建了一个docker容器。

我需要从这个容器连接到另一个运行postgres(https://hub.docker.com/_/postgres/)的容器。但是,我似乎无法正确安装用于postgres的PHP 7 PDO驱动程序。

这是Dockerfile的样子:

FROM php:7.0-cli
COPY ./app /app
WORKDIR /app
RUN apt-get update && apt-get install -y \
    postgresql-client  \
    && docker-php-ext-install -j$(nproc) pgsql
CMD [ "php", "./do_stuff.php" ]

取代pgsql我已经尝试了pdo-pgsqlphp7.0-pgsql,并尝试添加一行来添加ppa:ondrej/php回购以免拉扯。

大多数软件包都无法安装(即使pdo-pgsql无法找到php7.0-pgsql后由docker建议,但是安装错误的软件包仍然会引发错误,驱动程序不是&#39} ; t在尝试创建PDO连接时找到。

是否有正确的方法可以在docker容器中安装postgres的PDO驱动程序?

1 个答案:

答案 0 :(得分:0)

确保扩展名在/etc/php/7/cli/conf.d或/etc/php/7/fpm/conf.d中符号链接 - 文件夹取决于您的发行版。

您可以通过运行

来确定模块是否已加载
php -m
php7-fpm -m

如果模块丢失,检查/ etc / php / 7 / modules是否存在.ini文件并对其进行符号链接,然后模块应该加载。