扩展安装工具
docker-php-source
下载并解压扩展tar包,使用完毕后需要删除tar包
FROM php:7.4-cli
RUN docker-php-source extract \
# do important things \
&& docker-php-source delete
复制代码
docker-php-ext-configure
安装前需要配置的扩展,已包含docker-php-source
docker-php-ext-install
配合上一个命令使用
docker-php-ext-enable
用来安装pecl 方式安装的扩展,本质就是添加一行extension=xxx.so到php.ini安装扩展
安装扩展
核心扩展
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
复制代码
pecl扩展
FROM php:7.4-cli
RUN pecl install redis-5.1.1 \
&& pecl install xdebug-2.8.1 \
&& docker-php-ext-enable redis xdebug
复制代码
FROM php:5.6-cli
RUN apt-get update && apt-get install -y libmemcached-dev zlib1g-dev \
&& pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached
复制代码
pecl扩展也可以通过下载后使用phpize手动安装
举个redis安装的例子
RUN apk update \
&& apk add autoconf \
&& apk add gcc g++
RUN apk add make
RUN pecl install redis
RUN docker-php-ext-enable redis
复制代码
也可以这样安装(未实验): 参见参考3
RUN apk update \
&& apk add autoconf \
&& apk add gcc g++\
&& apk add make \
&& wget https://pecl.php.net/get/redis-5.0.1.tgz -O redis.tgz \
&& mkdir -p redis \
&& tar -xf redis.tgz -C redis --strip-components=1 \
&& rm redis.tgz \
&& ( \
cd redis \
&& phpize \
&& ./configure --with-php-config=/usr/local/bin/php-config \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r redis \
&& docker-php-ext-enable redis
复制代码
安装其他扩展
FROM php:5.6-cli
RUN curl -fsSL 'https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz' -o xcache.tar.gz \
&& mkdir -p xcache \
&& tar -xf xcache.tar.gz -C xcache --strip-components=1 \
&& rm xcache.tar.gz \
&& ( \
cd xcache \
&& phpize \
&& ./configure --enable-xcache \
&& make -j "$(nproc)" \
&& make install \
) \
&& rm -r xcache \
&& docker-php-ext-enable xcache
复制代码
FROM php:5.6-cli
RUN curl -fsSL 'https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz' -o xcache.tar.gz \
&& mkdir -p /tmp/xcache \
&& tar -xf xcache.tar.gz -C /tmp/xcache --strip-components=1 \
&& rm xcache.tar.gz \
&& docker-php-ext-configure /tmp/xcache --enable-xcache \
&& docker-php-ext-install /tmp/xcache \
&& rm -r /tmp/xcache
复制代码
参考