前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dockerfile PHP环境apt包加速及扩展支持(优化)

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

原创
作者头像
子润先生
修改2021-06-23 09:58:19
1.4K0
修改2021-06-23 09:58:19
举报

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

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

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

优化后的Dockerfile:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档