需求
docker官方的php镜像一般很少能直接用,因为很多扩展都没有,比如php;7.4.16-fpm镜像通过run启动后,默认没有启用mysqli模块,很多时候我们都需要根据需要来启用某些php扩展,所以一般都需要在官方的基础上进行重构。
但是看了一些重构的教程都比较麻烦,今天发现这么一个项目install-php-extensions
install-php-extensions项目
项目地址:https://github.com/mlocati/docker-php-extension-installer
构建项目
编写Dockerfile
FROM php:7.4.16-fpm
LABEL maintainer="https://imgki.com"
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && sync
#这里加上你要编译的模块
RUN install-php-extensions mysqli pdo_mysql gd exif imagick zip
构建镜像
docker build -t my-php:7.4.16-fpm .
之后很快构建完成,可以用docker images查看新构建的镜像
有可以用docker run --rm php_my:7.4.16-fpm php -m
查看包含的扩展
其他说明
Supported PHP extensions支持列表
官方github这里可以查看具体支持的列表,php版本和扩展的支持情况
https://github.com/mlocati/docker-php-extension-installer#supported-php-extensions
Special requirements特别要求
有些扩展是有特殊要求的
https://github.com/mlocati/docker-php-extension-installer#supported-php-extensions