我正在使用 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
时总是遇到这个错误the requested PHP extension bcmath is missing from your system.
我不确定为什么会这样。为什么扩展程序安装不上,如果我完全删除内容并在
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
关于dockerfile 不更新容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55308852/