Dockerfile不更新容器



我正在使用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

相关内容

  • 没有找到相关文章

最新更新