dockerfile 不更新容器

标签 docker docker-compose provisioning php-extension

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

相关文章:

ruby - cp : cannot stat ‘path/file’ : No such file or directory

iphone - 项目设置、目标设置中的代码签名以及创建存档后重新签名

docker - 连接 Docker 容器 : Frontend to GraphQL Backend via Docker Compose on the same Host

python - Django 静态文件未找到值错误

docker - 从 docker 容器中取出文件

wordpress - 如何使用WPML的 'different domain per language'配置dockerized wordpress nginx?

docker - 使用Docker-Compose UP进行Elixir测试

ios - 如何重新开始 ios 开发?

java - Docker 容器与 Java 虚拟机

Docker 查看历史日志