一个轻量级、生产就绪的Nginx/PHP-FPM组合Docker镜像。
!Build Status !Image Size !Docker Pulls !Licence
以下功能无需任何配置即可开箱即用:
bcmatch已安装,用于数学/货币功能composer已安装,用于管理PHP依赖gd已安装,用于图像处理intl已安装,提供国际化和本地化支持msmtp已安装并配置(见config/msmtprc),默认可发送邮件至Mailtrap
/var/log/msmtp.logmysql_pdo已安装,作为数据库连接驱动Nginx作为Web服务器和反向代理
/var/log/nginx/npm和node已安装,用于Node依赖管理和脚本运行PHP-FPM/OPcache提供浏览器和CLI环境下的高性能Redis扩展已安装,用于缓存supervisord已安装,用于进程管理(从镜像版本32开始)
php-fpm和nginx/etc/supervisord/conf.d/*.conf/var/log/supervisord.logzip已安装,支持需要压缩功能的场景(如Laravel、CSV/Excel处理)从镜像版本8开始,支持以下架构:
linux/amd64linux/arm/v7linux/arm64dockerfile# Dockerfile FROM justintime50/nginx-php:latest # docker-compose image: justintime50/nginx-php:latest
shdocker compose up -d
容器启动后,在浏览器中访问http://localhost:8888。
将PHP或HTML网站文件放入容器内的/var/www/html/public目录即可开始使用。可通过docker-compose的卷挂载或Dockerfile的复制命令实现。若使用HTML而非PHP,需移除index.php文件,使index.html优先加载。
将Laravel项目根目录挂载至容器的/var/www/html,确保Laravel的public目录与Nginx的服务目录对应。
镜像标签格式为PHP_VERSION-IMAGE_VERSION,例如8.2-16表示使用PHP 8.2版本和第16版镜像(包含Nginx配置、Dockerfile等)。
8.4 - 使用PHP 8.4 Alpine最新版本(从镜像版本21开始支持)8.3 - 使用PHP 8.3 Alpine最新版本(从镜像版本18开始支持)8.2 - 使用PHP 8.2 Alpine最新版本(从镜像版本12开始支持)8.1 - 使用PHP 8.1 Alpine最新版本(从镜像版本9开始支持)8.0 - 已弃用 使用PHP 8.0 Alpine最新版本(镜像版本19起停止支持)7.4 - 已弃用 使用PHP 7.4 Alpine最新版本(镜像版本19起停止支持)latest - 使用镜像的最新发布版(主分支),包含所有默认配置dev - 镜像的测试分支,请勿用于生产环境注意:Alpine Linux不保留旧版本软件包。本镜像固定主版本号以保持灵活性,未来构建可能需根据软件包可用性调整。
sh# 测试Nginx配置 nginx -T
发布时,创建新的GitHub标签/发布版本,使用整数递增(如4、5、6等)。为简化标签管理,不使用语义化版本。
添加新PHP版本时,需更新GitHub Workflow文件中的版本列表。
本镜像支持通过***PHP-FPM Alpine标签列表中的版本号替换PHP版本。
GitHub Actions在每次新发布时自动构建并推送支持的标签至Docker Hub;对主分支的任何推送会自动构建latest标签。强烈建议使用版本化标签,避免latest标签可能引入的变更。
shdocker build -t justintime50/nginx-php:8.0-7 --build-arg PHP_VERSION=8.0 . sudo docker push justintime50/nginx-php:8.0-7
msmtp默认配置支持Mailtrap,生产环境可取消注释并使用Gmail模板。启动容器后,可通过以下命令测试邮件发送:
sh# 直接使用msmtp发送邮件 echo -e "Subject: Test email from msmtp\r\n\r\nThis is a test email direct from msmtp" |msmtp --debug --from *** -t *** # 通过PHP发送邮件(路由至msmtp) php -r "mail('***','Test email from PHP', 'This is a test email from PHP');"
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速