这个项目提供了多个 PHP 版本的标准化 Docker 开发环境,旨在为 PHP 应用开发和部署提供一致、高效的容器化解决方案。项目支持 PHP 8.0、8.1、8.2、8.3 和 8.4 版本,所有版本均基于 Ubuntu 24.04 构建,并包含完整的 PHP 扩展套件。
项目采用按 PHP 版本分类的目录结构:
├── 8.0/ # PHP 8.0 版本配置 │ ├── Dockerfile # Docker 构建文件 │ └── php.ini # PHP 配置文件 ├── 8.1/ # PHP 8.1 版本配置 ├── 8.2/ # PHP 8.2 版本配置 ├── 8.3/ # PHP 8.3 版本配置 ├── 8.4/ # PHP 8.4 版本配置 ├── README.md # 项目文档 ├── build-images.sh # 快速构建脚本 └── push-images.sh # 镜像推送脚本
每个版本目录包含相同的文件结构,确保了不同 PHP 版本间的一致性和可预测性。
每个 PHP 版本均安装了以下扩展套件:
数据库支持:
Web 功能扩展:
性能优化扩展:
图像处理:
其他实用扩展:
当前版本的镜像采用简化设计,默认启动交互式 PHP Shell(php -a),适合命令行操作和脚本执行。
每个版本的 php.ini 包含以下关键配置:
项目提供了 build-images.sh 脚本,可以快速构建所有或指定版本的镜像:
# 构建所有版本镜像
./build-images.sh
# 构建特定版本镜像
./build-images.sh 8.2
以 PHP 8.2 为例,手动构建镜像的命令如下:
cd 8.2
docker build -t php:8.2 .
默认情况下,容器启动交互式 PHP Shell:
docker run -it --rm php:8.2
docker run -it --rm -v $(pwd):/var/www/html php:8.2 php your-script.php
docker run -it --rm -v $(pwd):/var/www/html php:8.2 composer install
docker run -it --rm -p 8000:8000 -v $(pwd):/var/www/html php:8.2 php -S 0.0.0.0:8000
当前版本的镜像使用简化设计,不需要特定环境变量配置,可直接使用默认设置。
/var/www/html 目录| PHP 版本 | 最低 Ubuntu 版本 | 扩展完整性 |
|---|---|---|
| 8.0 | 24.04 | 完整支持 |
| 8.1 | 24.04 | 完整支持 |
| 8.2 | 24.04 | 完整支持 |
| 8.3 | 24.04 | 完整支持 |
| 8.4 | 24.04 | 完整支持 |
如需根据项目需求扩展镜像功能,可以考虑:
项目提供了 push-images.sh 脚本,可以将构建好的镜像推送到阿里云容器镜像服务:
# 推送所有版本镜像
./push-images.sh
# 推送特定版本镜像
./push-images.sh 8.2
# 指定镜像标签
./push-images.sh --tag latest
推送前需要先登录阿里云容器镜像服务:
docker login registry.cn-hangzhou.aliyuncs.com
镜像将被推送到 registry.cn-hangzhou.aliyuncs.com/xutongle/php 仓库。
本项目采用 MIT 许可证。