在Docker容器中安装PHP 7扩展

我使用https://hub.docker.com/_/php/创build了一个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回购从没有运气拉。

大部分的软件包安装失败(甚至是php7.0-pgsql在找不到php7.0-pgsql提示的pdo-pgsql ),但是奇怪的安装仍然会抛出一个错误,那就是在创build时没有find驱动程序一个PDO连接。

有没有一种正确的方法来获得安装在docker集装箱中的postgres的PDO驱动程序?

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

你可以看看模块是否通过运行加载

 php -m php7-fpm -m 

如果模块丢失,请检查/ etc / php / 7 /模块,如果.ini文件存在并符号链接,则模块应该加载。