Dockerfile PHP环境apt包加速及扩展支持(优化)

发布日期: 2020-03-19 17:37:59 作者: Stephen 评论: 0

之前写了一篇用DockerFile构建PHP环境,但是在日常开发中,我们经常使用一些扩展,比如:Redis、MongoDB以及Swoole,那么我们就需要在容器里面进行PHP相关扩展的安装了,后面我对Dockerfile文件进行了优化,预先安装好这几个扩展(不需要的请自行去掉)。

在之前的版本中,还存在一个比较大的问题,那就是构建速度特别的慢,需要一个多小时左右,甚至还会超时,出错,原因在于,镜像中使用的apt包是国外源,那肯定就很慢了,我们现在修改为阿里云的国内源,最后发现,整个环境构建只需10分钟便可完成,足足提升了几倍。

旧版原文:《Dockerfile构建PHP,Nginx,Composer,lnmp环境

优化后的Dockerfile:

FROM php:7.2-fpm

MAINTAINER Stephen "mhzuhe@163.com"

RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && \
    rm -Rf /var/lib/apt/lists/* && \
    apt-get update && \
    apt-get install -y curl telnet git zlib1g-dev && \
    /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone && \
    docker-php-ext-install zip pdo pdo_mysql opcache mysqli && \
    apt-get install -y nginx supervisor && \
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
    php -r "unlink('composer-setup.php');" && \
    pecl install redis mongodb swoole && \
    rm -rf /tmp/pear && \
    docker-php-ext-enable redis mongodb swoole && \
    apt-get clean && rm -rf /var/cache/apt/*

COPY ./supervisord.conf /etc/supervisor/

WORKDIR /var/www/html

EXPOSE 80

CMD ["/usr/bin/supervisord"]

进入容器,查看PHP安装的扩展,有了 redismongodbswoole

root@92c61e2933a1:/var/www/html# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mongodb
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
swoole
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

快来抢沙发