在 docker-compose 中使用 php:7.2-apache 镜像时如何启用 php 扩展?

A.D*_*mas 1 php docker docker-compose

我想使用 docker compose 作为部署在容器内运行带有 php 扩展的 apache Web 服务器。

我的撰写文件如下所示:

version: '3.1'

services:
  php:
    image: php:7.2-apache
    ports:
      - 8089:80
    volumes:
      - ./php/www:/var/www/html/
Run Code Online (Sandbox Code Playgroud)

我如何启用以下扩展。

 apache2
 php7.2
 php-xdebug
 php7.2-mcrypt
 php-apcu
 php-apcu-bc
 php7.2-json
 php-imagick
 php-gettext
 php7.2-mbstring
Run Code Online (Sandbox Code Playgroud)

Sae*_*eed 10

首先,您可以php -mphp容器中运行以查看已安装和启用的模块。

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/

Run Code Online (Sandbox Code Playgroud)

创建一个名为Dockerfilebeside的文件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
...
Run Code Online (Sandbox Code Playgroud)

最后我们一一来说:

阿帕奇2

已安装。

PHP7.2

已启用。

php-xdebug

添加Dockerfile

RUN pecl install xdebug && docker-php-ext-enable xdebug
Run Code Online (Sandbox Code Playgroud)

php7.2-mcrypt

添加Dockerfile

RUN apt-get install libmcrypt-dev
RUN pecl install mcrypt && docker-php-ext-enable mcrypt
Run Code Online (Sandbox Code Playgroud)

php-apcu

添加Dockerfile

RUN pecl install apcu && docker-php-ext-enable apcu
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

php7.2-json

已安装。

php-imagick

添加Dockerfile

RUN apt install -y libmagickwand-dev --no-install-recommends && \
    pecl install imagick && docker-php-ext-enable imagick
Run Code Online (Sandbox Code Playgroud)

php-gettext

添加Dockerfile

RUN docker-php-ext-install gettext && \
    docker-php-ext-enable gettext
Run Code Online (Sandbox Code Playgroud)

php7.2-mbstring

已启用。