Я работаю с приложением, использующим докер (я не очень знакомый), и мне нужно добавить 2 новых расширения php.Я изменил файл Docker для существующего образа следующим образом:
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 отсутствует в вашей системе.
Я не уверенпочему это происходит.Почему расширение не будет установлено, и как получится, если я полностью удалю содержимое и напишу искаженный текст в файле Docker, оно всегда работает успешно.Кэшируется ли это?
Может кто-нибудь объяснить, как я переназначаю новые внесенные изменения?
Вот фрагмент от 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"
Спасибо.