需求

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查看新构建的镜像

vmware_WVjXRMMYsb.png

有可以用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

Last modification:February 9, 2023
如果觉得我的文章对你有用,请随意赞赏