我在运行 PHP5.x 的容器的 Dockerfile 中有以下内容:
RUN apt-get install -y php5-imagick libmagickwand-dev libmagickcore-dev
RUN pecl install imagick
RUN echo "extension=`php -i | grep ^extension_dir | cut -f 3 -d ' '`/imagick.so" >> /usr/local/etc/php/conf.d/xdebug.ini
容器的构建过程没有提供任何投诉。当我运行容器后查看 phpinfo() 输出时,没有提到 imagick。
我是否遗漏了某个明显的步骤?
为什么这会默默地失败?
(这是在包含运行 nginx 的上游容器的群上下文中。)
答案1
这个问题的答案在于我的群体的建立方式。
我的 docker-compose.yml 文件一直告诉 swarm 使用我的本地 Dockerfile 作为允许本地 cli 访问的容器,但它通过另一个容器运行 php 服务。添加一个“build”属性(包括“context”和“dockerfile”子属性),将相关容器指向该本地 Dockerfile,解决了该问题。