docker php ext安装-尽管安装了扩展,但仍然找不到源代码

docker php ext安装-尽管安装了扩展,但仍然找不到源代码,php,docker,Php,Docker,我正在尝试在docker PHP映像中安装extenion。我有以下Dockerfile: FROM php:7.2-apache RUN apt-get update RUN apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \ libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev \ libbz2-d

我正在尝试在docker PHP映像中安装extenion。我有以下Dockerfile:

FROM php:7.2-apache

RUN apt-get update

RUN apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
    libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev \
    libbz2-dev libpq-dev libproj-dev \
    git sudo wget postgresql-server-dev-all python-pyosmium osmium-tool

RUN docker-php-ext-install dba
RUN docker-php-ext-install pgsql

RUN printf '<Directory "/srv/nominatim/Nominatim/build/website"> \n\
  Options FollowSymLinks MultiViews \n\
  AddType text/html   .php \n\
  DirectoryIndex search.php \n\
  Require all granted \n\
</Directory> \n\
\n\
Alias /nominatim /srv/nominatim/Nominatim/build/website \n' > /etc/apache2/conf-available/nominatim.conf

RUN a2enconf nominatim
RUN service apache2 stop
RUN service apache2 start

WORKDIR /srv/nominatim
RUN wget https://nominatim.org/release/Nominatim-3.2.0.tar.bz2
RUN tar xf Nominatim-3.2.0.tar.bz2
RUN mv Nominatim-3.2.0 Nominatim

WORKDIR /srv/nominatim/Nominatim
RUN mkdir build

WORKDIR /srv/nominatim/Nominatim/build
RUN cmake ..
RUN make

RUN tee settings/local.php << $"EOF \n\
<?php \n\
 @define('CONST_Website_BaseURL', '/nominatim/'); \n\
EOF"
看起来DB.php实际上根本不存在(或者我找不到它们),尽管扩展名似乎已经安装好了-因为.so文件也在它的位置上


编辑:我已经在上面粘贴了完整的Dockerfile。实际上,我正在尝试构建一个包含PostgreSQL和OSM数据的另一个图像,该图像将由另一个图像组成。

请提供完整的Dockerfile。看起来您没有复制DB.php,它是应用程序源代码的一部分,而不是extension@Thomas,我已经更新了这个问题。我不认为瘦应用程序源代码有缺陷(至少我希望没有),因为PHP代码只来自Namingm。我没有以任何方式修改源代码。我怀疑您也需要安装PEAR:DB包,
PEAR install DB
问题在于此docker映像包含从源代码而不是从包编译的PHP构建。因此,我使用docker php ext安装脚本安装扩展,它不允许我安装PEAR,或者至少我不知道如何安装。尝试为包安装任何扩展都会导致“无安装候选”。
Warning: require_once(DB.php): failed to open stream: No such file or directory in /srv/nominatim/Nominatim/lib/db.php on line 3

Fatal error: require_once(): Failed opening required 'DB.php' (include_path='.:/usr/local/lib/php') in /srv/nominatim/Nominatim/lib/db.php on line 3