virtuman/wordpress Docker 镜像
virtuman查看 Docker Hub 原文页
自动构建
一个高度可配置的Nginx+PHP+Exim Web服务器栈,集成ngx_pagespeed、NewRelic监控、xdebug调试工具和邮件服务,支持生产/开发环境切换,适用于Web应用部署。
下载次数: 0状态:自动构建维护者:virtuman仓库类型:镜像最近更新:7 年前
Nginx + PHP + Exim
镜像概述
基于https://hub.docker.com/r/funkygibbon/nginx-pagespeed/构建的高度可配置Nginx-PHP Web服务器栈,而该基础镜像又基于https://hub.docker.com/r/funkygibbon/ubuntu/。
Docker Hub地址:https://hub.docker.com/r/funkygibbon/nginx-php-exim/
核心功能与特性
- 性能优化:集成https://github.com/pagespeed/ngx_pagespeed模块
- 应用监控:内置https://newrelic.com
- 邮件服务:exim4邮件服务器,支持通过smarthost投递至sendgrid或mailgun
- 任务调度:完整功能的cron守护进程
- 开发调试:https://xdebug.org/调试工具,支持配置远程主机/端口/密钥
- 环境切换:支持生产/开发环境,开发模式下所有外发邮件重定向至配置的管理员***
- 安全配置:默认安全设置,基于Mozilla中级配置文件的SSL配置(详见https://hub.docker.com/r/funkygibbon/nginx-pagespeed/)
快速启动
bashdocker run -p "80:80" -p "443:443" -e "APP_HOSTNAME=some.example.com" -v /some/dir/www:/app/www docker.xuanyuan.run/funkygibbon/nginx-php-exim
配置参数
容器通过环境变量进行配置,服务启动时应用配置。如需重新配置,可执行docker exec <容器ID> sv restart php|nginx重启服务。
| 变量名 | 默认值 | 描述 |
|---|---|---|
| APP_ENV | production | 运行环境:production(生产)或development(开发),开发环境启用xdebug |
| ADMIN_EMAIL | *** | 管理员***,开发模式下拦截的邮件发送至此 |
| CHOWN_APP_DIR | true | 若为true,执行chown -R $APP_USER:$APP_GROUP /app/www |
| APP_HOSTNAME | hostname -f | 应用主机名 |
| VIRTUAL_HOST | example.com | 服务响应的虚拟主机,逗号分隔,适用于https://hub.docker.com/r/jwilder/nginx-proxy/ |
| CONTAINER_TIMEZONE | Australia/Sydney | 服务器时区 |
| APP_USER | app | nginx和php5-fpm运行用户 |
| APP_GROUP | app | nginx和php5-fpm运行组 |
| APP_UID | 1000 | 用户ID,挂载主机卷时用于权限控制 |
| APP_GID | 1000 | 组ID |
| UPLOAD_MAX_SIZE | 30M | 最大上传大小,同时应用于nginx和php5-fpm |
| NGINX_MAX_WORKER_PROCESSES | 8 | nginx工作进程数上限,实际根据CPU核心数动态调整 |
| PHP_MEMORY_LIMIT | 128M | PHP每个工作进程的内存限制 |
| PHP_PROCESS_MANAGER | dynamic | PHP进程管理模式:dynamic(动态)、static(静态)、ondemand(按需) |
| PHP_MAX_CHILDREN | 6 | 进程管理器最大衍生子进程数 |
| PHP_START_SERVERS | 3 | 动态模式下启动时的子进程数 |
| PHP_MIN_SPARE_SERVERS | 2 | 动态模式下最小空闲子进程数 |
| PHP_MAX_SPARE_SERVERS | 3 | 动态模式下最大空闲子进程数 |
| PHP_MAX_REQUESTS | 500 | 每个子进程处理的最大请求数(0为禁用),用于缓解内存泄漏 |
| PHP_DISABLE_FUNCTIONS | false | 额外禁用的PHP函数列表(逗号分隔),追加到系统默认禁用列表 |
| PHP_XDEBUG_REMOTE_HOST | 172.17.42.1 | 开发环境下xdebug连接的远程主机 |
| PHP_XDEBUG_REMOTE_PORT | 9000 | xdebug端口 |
| PHP_XDEBUG_IDE_KEY | default_ide_key | xdebug IDE密钥 |
| EXIM_DELIVERY_MODE | local | 邮件投递模式:smarthost(第三方SMTP)或local(本地) |
| EXIM_MAIL_FROM | example.com | 邮件发件域名 |
| EXIM_SMARTHOST | smtp.example.org::587 | smarthost中继SMTP服务器地址和端口(端口前用双冒号::分隔) |
| EXIM_SMARTHOST_AUTH_USERNAME | *** | SMTP认证用户名 |
| EXIM_SMARTHOST_AUTH_PASSWORD | password_123 | SMTP认证密码 |
| NEWRELIC_ENABLED | true | 是否启用Newrelic监控 |
| NEWRELIC_APPNAME | $PHP_POOL_NAME | Newrelic APM中的应用名称,默认与PHP池名相同(APP_HOSTNAME的点替换为下划线) |
| NEWRELIC_LICENSE | DISABLED | Newrelic账户许可证密钥,需从Newrelic账户页面获取 |
更多配置选项可参考上游镜像:
- https://hub.docker.com/r/funkygibbon/nginx-pagespeed/
- https://hub.docker.com/r/funkygibbon/ubuntu/
使用场景
- Web应用部署(如WordPress等PHP应用)
- 需要邮件发送功能的应用服务
- 开发环境快速搭建(含xdebug调试支持)
- 需要性能优化和监控的生产环境
设计理念
尽管将Nginx、PHP和Exim捆绑在一个容器中可能看似与Docker微服务理念相悖,但实际应用中,这些组件的配置(如上传大小限制、权限设置)需要同步调整,且通过Unix socket通信比TCP更高效。目前这种整合方式在实际使用中表现稳定,未来可能根据需求考虑拆分组件。
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 wordpress 镜像标签
docker pull docker.xuanyuan.run/virtuman/wordpress:<标签>
DockerHub 原生拉取命令
docker pull virtuman/wordpress:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务