docker官方的 php;7.4.16-fpm 镜像通过run启动后,默认没有启用mysqli模块,而wordpress需要使用mysqli来连接数据库;
此外很多时候我们都需要根据需要来启用某些php扩展;
此时我们可以在官方镜像的基础上自己重新构建。
1 install-php-extensions 介绍:
这是github上一个25k star的项目,目的就是为了在docker中安装php拓展,具体项目参见:
https://github.com/mlocati/docker-php-extension-installer
其中有详细的可启用模块列表及对应的版本支持,这里随便截个图
# 下载该工具,复制到镜像中可以直接使用;也可以将其加入dockerfile中
wget https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions
2 dockerfile编写
首先 创建一个名为“Dockerfile”的文件
注意,文件名必须是“Dockerfile”,“D”是大写字母。
Dockerfile 文件中包含以下命令:
FROM php:7.4.16-fpm
LABEL maintainer="https://caojie.blog"
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
(也可以预先使用wget将install-php-extensions下载到本地,通过 copy复制进容器。避免github被墙下载失败卡住dockerfile)
执行过程
构建成功后通过 docker images 即可查到该镜像