Как включить расширения php при использовании образа php:7.2-apache с docker-compose?

Я хочу запустить веб-сервер apache с расширением php внутри контейнера, используя docker compose в качестве развертывания.

Мой компоновочный файл выглядит так:

version: '3.1'

services:
  php:
    image: php:7.2-apache
    ports:
      - 8089:80
    volumes:
      - ./php/www:/var/www/html/

как я могу включить следующие расширения.

 apache2
 php7.2
 php-xdebug
 php7.2-mcrypt
 php-apcu
 php-apcu-bc
 php7.2-json
 php-imagick
 php-gettext
 php7.2-mbstring
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде всего, вы можете запустить php -m в контейнере php, чтобы увидеть установленные и включенные модули.

Вы можете отредактировать свой docker-compose.yml следующим образом:

version: '3.1'

services:
  php:
    # image: php:7.2-apache # remember to comment this line
    build: .
    ports:
      - 8089:80
    volumes:
      - ./php/www:/var/www/html/

Создайте файл с именем Dockerfile рядом с docker-compose.yml со следующим содержимым:

FROM php:7.2-apache
# then add the following `RUN ...` lines in each separate line, like this:
RUN pecl install xdebug && docker-php-ext-enable xdebug
...

Наконец, давайте по одному:

apache2

Установлен.

php7.2

Включен.

php-xdebug

Добавьте Dockerfile:

RUN pecl install xdebug && docker-php-ext-enable xdebug
php7.2-mcrypt

Добавьте в Dockerfile:

RUN apt-get install libmcrypt-dev
RUN pecl install mcrypt && docker-php-ext-enable mcrypt
php-apcu

Добавьте в Dockerfile:

RUN pecl install apcu && docker-php-ext-enable apcu
php-apcu-bc

Добавьте в Dockerfile:

RUN pecl install apcu_bc
RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
RUN echo 'extension=apc.so' >> /usr/local/etc/php/php.ini
php7.2-json

Установлен.

php-imagick

Добавьте в Dockerfile:

RUN apt install -y libmagickwand-dev --no-install-recommends && \
    pecl install imagick && docker-php-ext-enable imagick

php-gettext

RUN docker-php-ext-install gettext && \
    docker-php-ext-enable gettext

php7.2-mbstring

Is enabled.

Другие вопросы по теме