Docker基于Dockerfile安装PHP扩展汇总

Docker   2023-12-12 10:15   17   0  

新建Dockerfile文件:

vi Dockerfile

从官方基础版本构建

FROM php:7.2-fpm


官方版本默认安装扩展

Core, 
ctype, 
curl
date, 
dom
fileinfo, 
filter, 
ftp
hash
iconv
json
libxml
mbstring, 
mysqlnd
openssl
pcre, 
PDO, 
pdo_sqlite, 
Phar, 
posix
readline, 
Reflection, 
session, 
SimpleXML, 
sodium, 
SPL, 
sqlite3, 
standard
tokenizer
xml, 
xmlreader, 
xmlwriter
zlib


扩展汇总

增加 bcmath, calendar, exif, gettext, sockets, dba,
mysqli, pcntl, pdo_mysql, shmop, sysvmsg, sysvsem, sysvshm 扩展

RUN docker-php-ext-install -j$(nproc) bcmath calendar exif gettext
sockets dba mysqli pcntl pdo_mysql shmop sysvmsg sysvsem sysvshm


增加 bz2 扩展, 读写 bzip2(.bz2)压缩文件

RUN apt-get update &&
apt-get install -y --no-install-recommends libbz2-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) bz2


增加 enchant 扩展, 拼写检查库

RUN apt-get update &&
apt-get install -y --no-install-recommends libenchant-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) enchant


增加 GD 扩展. 图像处理

RUN apt-get update &&
apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ &&
docker-php-ext-install -j$(nproc) gd



增加 gmp 扩展, GMP

RUN apt-get update &&
apt-get install -y --no-install-recommends libgmp-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) gmp



增加 soap wddx xmlrpc tidy xsl 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libxml2-dev libtidy-dev libxslt1-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) soap wddx xmlrpc tidy xsl



增加 zip 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libzip-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) zip


增加 snmp 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libsnmp-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) snmp



增加 pgsql, pdo_pgsql 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libpq-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) pgsql pdo_pgsql



增加 pspell 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libpspell-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) pspell



增加 recode 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends librecode-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) recode



增加 PDO_Firebird 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends firebird-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) pdo_firebird



增加 pdo_dblib 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends freetds-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-configure pdo_dblib --with-libdir=lib/x86_64-linux-gnu &&
docker-php-ext-install -j$(nproc) pdo_dblib



增加 ldap 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libldap2-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu &&
docker-php-ext-install -j$(nproc) ldap



增加 imap 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libc-client-dev libkrb5-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-configure imap --with-kerberos --with-imap-ssl &&
docker-php-ext-install -j$(nproc) imap


增加 interbase 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends firebird-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) interbase


增加 intl 扩展

RUN apt-get update &&
apt-get install -y --no-install-recommends libicu-dev &&
rm -r /var/lib/apt/lists/* &&
docker-php-ext-install -j$(nproc) intl


增加 mcrypt 扩展

RUN apt-get update && \
apt-get install -y --no-install-recommends libmcrypt-dev &&
rm -r /var/lib/apt/lists/* &&
pecl install mcrypt-1.0.1 &&
docker-php-ext-enable mcrypt


imagick 扩展

RUN export CFLAGS="PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" &&
apt-get update &&
apt-get install -y --no-install-recommends libmagickwand-dev &&
rm -rf /var/lib/apt/lists/* &&
pecl install imagick-3.4.3 &&
docker-php-ext-enable imagick


增加 Memcached 扩展

RUN apt-get update && \
apt-get install -y --no-install-recommends zlib1g-dev libmemcached-dev &&
rm -r /var/lib/apt/lists/* &&
pecl install memcached &&
docker-php-ext-enable memcached


redis 扩展

RUN pecl install redis-4.0.1 && docker-php-ext-enable redis


增加 opcache 扩展

RUN docker-php-ext-configure opcache --enable-opcache && docker-php-ext-install opcache


增加 odbc, pdo_odbc 扩展

RUN set -ex;
docker-php-source extract;
{
echo '# https://github.com/docker-library/php/issues/103#issuecomment-271413933';
echo 'AC_DEFUN([PHP_ALWAYS_SHARED],[])dnl';
echo;
cat /usr/src/php/ext/odbc/config.m4;
} > temp.m4;
mv temp.m4 /usr/src/php/ext/odbc/config.m4;
apt-get update;
apt-get install -y --no-install-recommends unixodbc-dev;
rm -rf /var/lib/apt/lists/*;
docker-php-ext-configure odbc --with-unixODBC=shared,/usr;
docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr;
docker-php-ext-install odbc pdo_odbc;
docker-php-source delete


增加 xdebug 扩展

根据版本不同而定:php74:xdebug-3.0.4
查看版本:Package :: xdebug 查看版本点击 DLL 进入查看
 pecl install xdebug && docker-php-ext-enable xdebug


镜像信息

LABEL Author="Leo"
LABEL Version="1.0.25-fpm"
LABEL Description="PHP FPM 7.2 镜像. All extensions."


来源:https://zhuanlan.zhihu.com/p/597110758?utm_id=0


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。