wordpress

virtuman/wordpress Docker 镜像

自动构建

一个高度可配置的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/)

快速启动

bash
docker 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_ENVproduction运行环境:production(生产)或development(开发),开发环境启用xdebug
ADMIN_EMAIL***管理员***,开发模式下拦截的邮件发送至此
CHOWN_APP_DIRtrue若为true,执行chown -R $APP_USER:$APP_GROUP /app/www
APP_HOSTNAMEhostname -f应用主机名
VIRTUAL_HOSTexample.com服务响应的虚拟主机,逗号分隔,适用于https://hub.docker.com/r/jwilder/nginx-proxy/
CONTAINER_TIMEZONEAustralia/Sydney服务器时区
APP_USERappnginx和php5-fpm运行用户
APP_GROUPappnginx和php5-fpm运行组
APP_UID1000用户ID,挂载主机卷时用于权限控制
APP_GID1000组ID
UPLOAD_MAX_SIZE30M最大上传大小,同时应用于nginx和php5-fpm
NGINX_MAX_WORKER_PROCESSES8nginx工作进程数上限,实际根据CPU核心数动态调整
PHP_MEMORY_LIMIT128MPHP每个工作进程的内存限制
PHP_PROCESS_MANAGERdynamicPHP进程管理模式:dynamic(动态)、static(静态)、ondemand(按需)
PHP_MAX_CHILDREN6进程管理器最大衍生子进程数
PHP_START_SERVERS3动态模式下启动时的子进程数
PHP_MIN_SPARE_SERVERS2动态模式下最小空闲子进程数
PHP_MAX_SPARE_SERVERS3动态模式下最大空闲子进程数
PHP_MAX_REQUESTS500每个子进程处理的最大请求数(0为禁用),用于缓解内存泄漏
PHP_DISABLE_FUNCTIONSfalse额外禁用的PHP函数列表(逗号分隔),追加到系统默认禁用列表
PHP_XDEBUG_REMOTE_HOST172.17.42.1开发环境下xdebug连接的远程主机
PHP_XDEBUG_REMOTE_PORT9000xdebug端口
PHP_XDEBUG_IDE_KEYdefault_ide_keyxdebug IDE密钥
EXIM_DELIVERY_MODElocal邮件投递模式:smarthost(第三方SMTP)或local(本地)
EXIM_MAIL_FROMexample.com邮件发件域名
EXIM_SMARTHOSTsmtp.example.org::587smarthost中继SMTP服务器地址和端口(端口前用双冒号::分隔)
EXIM_SMARTHOST_AUTH_USERNAME***SMTP认证用户名
EXIM_SMARTHOST_AUTH_PASSWORDpassword_123SMTP认证密码
NEWRELIC_ENABLEDtrue是否启用Newrelic监控
NEWRELIC_APPNAME$PHP_POOL_NAMENewrelic APM中的应用名称,默认与PHP池名相同(APP_HOSTNAME的点替换为下划线)
NEWRELIC_LICENSEDISABLEDNewrelic账户许可证密钥,需从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:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告