首页 > 解决方案 > 如何从 docker-compose 文件启用 php 模块?

问题描述

我正在尝试加载 PHP 日历模块,但我遇到了一些问题。我尝试了 2 种方法,但似乎都不起作用。

第一个是在外部 Dockerfile-alternate 中添加模块,但 Dockerfile 似乎根本没有加载。

第二个是使用自定义 php.ini 文件加载它(这个文件实际上正在加载,因为如果我不加载它,SESSION 将不起作用。)在我的php.ini文件中,我也添加extension=calendar.so了。

码头工人-compose.yml

services:
  php:
    depends_on:
      - mysql
    build:
      context: ./php
      dockerfile: Dockerfile-alternate
      args:
        PHP_VERSION: ${PHP_VERSION}
    ports:
      - "8000:80"
    volumes:
      - ${PROJECT_ROOT}/:/var/www/html/
      - ./config/php.ini:/usr/local/etc/php/conf.d/php.ini
    container_name: php

/php/Dockerfile-alternate

FROM php:7.2.8-apache

COPY . var/www/html
COPY ./000-apache.conf /etc/apache2/others/000-default.conf

RUN chown -R www-data:www-data var/www/html \
    && a2enmod rewrite

# Comment
RUN echo 'testing' //I do not see this comment. 

RUN docker-php-ext-install mysqli pdo pdo_mysql calendar

任何帮助将非常感激。

更新 得到这些错误。

php           | PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
php           | PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pdo_mysql.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/php_pdo_mysql.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/php_pdo_mysql.so: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/php_pdo_mysql.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/php_pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
php           | PHP Warning:  PHP Startup: Unable to load dynamic library 'calendar.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/calendar.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/calendar.so: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/calendar.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/calendar.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

标签: phpdockerdocker-compose

解决方案


搞定了,如果有人遇到这个问题,这可能会有所帮助

我跑了docker-compose build --no-cache,这让我对正在发生的事情有了更多的了解。我认为真正的问题是它只是从缓存中构建的。


推荐阅读