docker运行php网站程序

有一个之前的php网站程序需要迁移到K8S,简单调研了下。

基础镜像#

官方提供了诸如php:7.1-apache的基础镜像,但是确认必要的扩展,例如gd,当然官方提供了docker-php-ext-install命令,可以用来安装需要的扩展。但是每次构建都重新安装非常费时,最好的办法是构建一个包含必要扩展的基础镜像。

Copy
FROM php:7.1-apache ENV PORT 80 EXPOSE 80 RUN buildDeps=" \ default-libmysqlclient-dev \ libbz2-dev \ libsasl2-dev \ " \ runtimeDeps=" \ curl \ git \ libfreetype6-dev \ libicu-dev \ libjpeg-dev \ libmcrypt-dev \ libpng-dev \ libpq-dev \ libxml2-dev \ " \ sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list \ && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $buildDeps $runtimeDeps \ && docker-php-ext-install bcmath bz2 calendar iconv intl mbstring mcrypt mysqli opcache pdo_mysql pdo_pgsql pgsql soap zip \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install gd \ && apt-get purge -y --auto-remove $buildDeps \ && rm -r /var/lib/apt/lists/* ENV PATH=$PATH:/root/composer/vendor/bin COMPOSER_ALLOW_SUPERUSER=1

然后构建基础镜像

Copy
docker build -t common/php:7.1-apache .

PS: 更多的php镜像,查看 https://github.com/chialab/docker-php

使用基础镜像#

Dockerfile应用刚构建好的基础镜像:

Copy
FROM common/php:7.1-apache ENV PORT 80 EXPOSE 80 COPY . /var/www/html RUN usermod -u 1000 www-data; \ a2enmod rewrite; \ chown -R www-data:www-data /var/www/html

构建即可:

Copy
docker build -t common/zhifou:v0.0.12 .

关注作者

欢迎关注作者微信公众号, 一起交流软件开发:欢迎关注作者微信公众号

posted @   JadePeng  阅读(3310)  评论(0)    收藏  举报
编辑推荐:
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
阅读排行:
· 7 个最近很火的开源项目「GitHub 热点速览」
· DeepSeekV3:写代码很强了
· 记一次 .NET某固高运动卡测试 卡慢分析
· Visual Studio 2022 v17.13新版发布:强化稳定性和安全,助力 .NET 开发提
· C# LINQ 快速入门实战指南,建议收藏学习!
点击右上角即可分享
微信分享提示
CONTENTS