我正在使用docker(我不太熟悉)的应用程序,我需要添加2个新的PHP扩展名。我已经在现有图像上更改了Dockerfile
,如下所示:
FROM php:7.2-fpm
RUN apt-get update
RUN apt-get install -y git unzip
RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer
RUN apt-get install -y git libpng-dev
&& docker-php-ext-install gd
RUN apt-get install -y mysql-client
&& docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd
&& docker-php-ext-install pdo_mysql
RUN apt-get install -y libgmp-dev bcmath
&& docker-php-ext-configure gmp
&& docker-php-ext-install gmp
&& docker-php-ext-install bcmath
RUN pecl install xdebug
&& docker-php-ext-enable xdebug
ADD docker/templates/usr/local/etc/php/conf.d/uploads.ini /usr/local/etc/php/conf.d/uploads.ini
我的新行是:
RUN apt-get install -y libgmp-dev bcmath
&& docker-php-ext-configure gmp
&& docker-php-ext-install gmp
&& docker-php-ext-install bcmath
我尝试了docker-compose restart
,我尝试了docker-compose down
,其次是docker-compose up
,我完全删除了容器并用up
重新创建。无论我尝试多么努力,我总是在执行composer require
系统中缺少请求的PHP扩展BCMATH。
我不确定为什么会发生这种情况。为什么不安装扩展名,以及如果我完全删除内容并在Dockerfile
中写乱七八糟的文本,它总是成功运行的。它在缓存吗?
有人可以解释如何重新提供我所做的新更改?
docker-compose.yml
的摘要:
services:
web:
build:
context: ./
dockerfile: docker/web.docker
working_dir: /var/www
volumes:
- ./:/var/www
ports:
- 81:80
app:
build:
context: ./
dockerfile: docker/app.docker
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "LARAVEL_ENVIRONMENT=local"
您需要重建图像
docker-compose build
和下一个重新运行的容器
docker-compose up -d