docker 制作自己的 php-fpm镜像

php-fpm的镜像官方已经有了,但是直接拿过来用或许不行,不同的项目所需要的扩展不一定一样。所以这里我们以官方的php-fpm 5.6版本为基础镜像,在这个镜像上制作我们自己的镜像。开发环境安装尽可能多的扩展,线上环境则安装所需要的扩展。

为了构建我们的镜像,首先需要一个名为Dockerfile的文件,docker会根据这个Dockerfile来构建镜像。

首先使用FROM指令,表示当前构建的镜像的基础镜像

FROM php:5.6-fpm

docker会从他自己的镜像库中拉取php-fpm5.6的镜像。

然后我们使用RUN指令来在这个镜像中执行一些指令。实际上RUN后面接着的就是linux的命令。比如apt-get,mkdir等等。

我们需要的是在这个镜像中安装一些php的扩展。可以使用RUN phpize,然后RUN make等一系列的命令来编译安装。不过docker里面内置了一个脚本,名为docker-php-ext-install,这个脚本会在/usr/src/php/ext的目录寻找扩展,并且编译安装,比我们自己编译然后写入配置要方便一些,所以我们就使用docker-php-ext-install来安装扩展啦。

比如我们需要安装redis

# install redis
RUN curl -L -o /tmp/redis.tar.gz http://pecl.php.net/get/redis-3.1.4.tgz \
&& tar xvf /tmp/redis.tar.gz \
&& rm -r /tmp/redis.tar.gz \
&& mkdir -pv /usr/src/php/ext \
&& mv redis-3.1.4 /usr/src/php/ext/redis \
&& docker-php-ext-install redis

上面的步骤就是首先下载redis,解压,移动到/usr/src/php/ext/里面,最后使用docker-php-ext-install编译和安装扩展就可以。同样,安装任何php的扩展都可以使用这个步骤来安装。

最后就是使用docker build命令来构建镜像,命令如下

docker build -t [镜像名称] [Dockerfile所在文件夹]

至此,一个我们自己的php-fpm镜像就构建完成,使用docker images看看镜像是不是已经存在啦!

标签:PHPDocker 发布于:2019-11-01 05:16:43