如何从 docker 撰写文件中启用 php 模块?



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

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

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

docker-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-alternative

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

让它工作,如果有人遇到这个问题,这可能会有所帮助

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

最新更新