Docker构建PHP镜像

Docker构建PHP镜像,安装自定义扩展以及composer

       最近将业务从宝塔面板抽离出来,由于我很多程序都是用PHP写的,所以走Docker化,需要用到PHP镜像,但是默认的PHP镜像是缺失很多扩展以及没有安装composer,所以决定自己写一个PHP镜像,安装需要用到的扩展以及composer,下面直接贴出Dockerfile文件

# Version 1.0

FROM php:7.3-fpm
# 维护者信息
MAINTAINER hzx790254812@gmail.com
# 替换源
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && rm -Rf /var/lib/apt/lists/* &&  cat /etc/apt/sources.list
# 更新软件源
RUN apt-get update
# 安装zip扩展所需的依赖扩展
RUN apt-get install -y zlib1g-dev
RUN apt-get install -y libzip-dev
# 安装GD扩展
RUN apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
RUN docker-php-source extract
RUN cd /usr/src/php/ext/gd
RUN docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
RUN docker-php-ext-install gd
# 安装bcmath扩展
RUN docker-php-ext-install bcmath
# 安装Mysql扩展
RUN docker-php-ext-install pdo_mysql
# 安装Redis扩展
RUN pecl install redis
RUN docker-php-ext-enable redis
# 安装Openssl扩展
RUN apt-get update
RUN apt-get install openssl
# 安装zip扩展
RUN docker-php-ext-install zip
# 安装sockets扩展
RUN docker-php-ext-install sockets
# 安装curl
RUN apt-get install -y curl
# 安装ftp
RUN apt-get install -y ftp
# 安装wget
RUN apt-get install wget
# 安装cron
RUN apt-get update && apt-get install -y cron
# 安装vim
RUN apt-get install -y vim
# 安装Compose
RUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer
# 对外展示端口
EXPOSE 9000

这个镜像是以PHP7.3为基础,为了提高安装速度,我直接将源改为阿里云的源,同时安装composer,暴露9000端口,然后我们在Dockerfile根目录下执行以下命令行进行打包

docker build -t hongzhuangxian/php7.3-diy .

如果为了方便使用,我们还可以将我们的镜像推送到docker Hub上,执行以下命令

docker push hongzhuangxian/php7.3-diy

这样我们就实现了自定义PHP镜像包,并推送到docker Hub上,大家也可以直接使用我的镜像,直接输入以下命令行边可以拉取镜像到本地

docker pull push hongzhuangxian/php7.3-diy


0条评论

发表评论