
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Roundcube Docker镜像是Roundcube Webmail套件的容器化部署方案,提供基于Web的电子邮件客户端功能。该镜像封装了Roundcube Webmail的核心组件,支持通过环境变量快速配置,兼容多种数据库后端,并提供灵活的持久化和扩展能力,适用于个人或企业邮件系统的Web访问层部署。
apache(含Apache Web服务器)、fpm(FPM模式)和fpm-alpine(Alpine轻量版FPM)三种变体| 标签类型 | 描述 |
|---|---|
latest-* | 包含最新稳定版Roundcube及最新PHP基础镜像(如latest-apache) |
1.3.x | 特定主版本系列(如1.3系列),持续接收该系列更新和基础镜像升级 |
1.3.10 | 完整版本标签,仅表示发布时的版本和基础镜像,不接收后续更新 |
apache:基于php:*{-apache}镜像,内置Apache Web服务器,开箱即用fpm:基于php:*{-fpm}镜像,仅包含PHP-FPM,需配合外部Web服务器(如Nginx)fpm-alpine:基于Alpine Linux的FPM变体,镜像体积更小,资源占用更低5.1.1 基础连接配置
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ROUNDCUBEMAIL_DEFAULT_HOST | - | IMAP服务器主机名,加密连接前缀:tls://(STARTTLS)或ssl://(SSL/TLS) |
ROUNDCUBEMAIL_DEFAULT_PORT | 143 | IMAP服务器端口 |
ROUNDCUBEMAIL_SMTP_SERVER | - | SMTP服务器主机名,加密连接前缀同上 |
ROUNDCUBEMAIL_SMTP_PORT | 587 | SMTP服务器端口 |
ROUNDCUBEMAIL_USERNAME_DOMAIN | - | 自动添加到登录用户名的域名(如example.com,用户仅需输入user) |
ROUNDCUBEMAIL_REQUEST_PATH | / | 反向代理场景下的请求路径,详情见https://github.com/roundcube/roundcubemail/blob/master/config/defaults.inc.php |
5.1.2 功能与外观配置
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ROUNDCUBEMAIL_PLUGINS | archive,zipdownload | 启用的内置插件列表(逗号分隔) |
ROUNDCUBEMAIL_INSTALL_PLUGINS | - | 设置为1或true启用启动时插件安装 |
ROUNDCUBEMAIL_SKIN | elastic | 默认主题皮肤 |
ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE | 5M | 文件上传大小限制 |
ROUNDCUBEMAIL_SPELLCHECK_URI | - | Google XML拼写检查API的完整URL(如google-spell-pspell服务) |
ROUNDCUBEMAIL_ASPELL_DICTS | - | 要安装的aspell词典列表(逗号分隔,如de,fr,pl) |
5.1.3 数据库配置
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ROUNDCUBEMAIL_DB_TYPE | sqlite | 数据库类型:mysql、pgsql或sqlite |
ROUNDCUBEMAIL_DB_HOST | mysql/postgres | 数据库主机名(默认值取决于数据库类型) |
ROUNDCUBEMAIL_DB_PORT | 3306/5432 | 数据库端口(默认值取决于数据库类型) |
ROUNDCUBEMAIL_DB_USER | root(MySQL) | 数据库用户名 |
ROUNDCUBEMAIL_DB_PASSWORD | - | 数据库密码 |
ROUNDCUBEMAIL_DB_NAME | roundcubemail | 数据库名称 |
5.2.1 SQLite(默认)
默认使用容器内SQLite数据库(路径/var/roundcube/db),适用于测试环境。生产环境需通过卷挂载持久化数据:
shdocker run -v roundcube-db:/var/roundcube/db -d roundcube/roundcubemail
5.2.2 MySQL/PostgreSQL(推荐生产环境)
配置示例(MySQL):
shdocker run \ -e ROUNDCUBEMAIL_DB_TYPE=mysql \ -e ROUNDCUBEMAIL_DB_HOST=mysql-host \ -e ROUNDCUBEMAIL_DB_USER=roundcube \ -e ROUNDCUBEMAIL_DB_PASSWORD=secret \ -e ROUNDCUBEMAIL_DB_NAME=roundcube_db \ -d roundcube/roundcubemail
注意:启动前需确保数据库已存在,且用户具有表创建权限。
在Docker Swarm中,可通过Docker Secrets管理敏感信息,支持以下secrets:
| Secret名称 | 对应环境变量 | 用途 |
|---|---|---|
roundcube_des_key | - | 用于加密的唯一随机密钥 |
roundcube_db_user | ROUNDCUBEMAIL_DB_USER | 数据库用户名 |
roundcube_db_password | ROUNDCUBEMAIL_DB_PASSWORD | 数据库密码 |
roundcube_oauth_client_secret | ROUNDCUBEMAIL_OAUTH_CLIENT_SECRET | OAuth客户端密钥 |
使用示例:
yamlversion: '3.8' secrets: db_password: file: ./db_password.txt services: roundcube: image: roundcube/roundcubemail secrets: - source: db_password target: roundcube_db_password
5.4.1 自定义配置文件
通过挂载目录到/var/roundcube/config,添加*.php文件实现配置覆盖(支持PHP语法):
shdocker run -v ./custom-config:/var/roundcube/config -d roundcube/roundcubemail
配置参考:https://github.com/roundcube/roundcubemail/wiki/Configuration
5.4.2 PHP参数调整
挂载PHP配置文件到/usr/local/etc/php/conf.d/zzz_roundcube-custom.ini自定义PHP设置:
ini# custom-php.ini memory_limit = 128M upload_max_filesize = 10M
启动命令:
shdocker run -v ./custom-php.ini:/usr/local/etc/php/conf.d/zzz_roundcube-custom.ini -d roundcube/roundcubemail
以下目录需通过卷挂载实现数据持久化或多实例共享:
| 路径 | 用途描述 |
|---|---|
/var/roundcube/db | SQLite数据库存储目录(仅SQLite模式需要) |
/var/www/html | Roundcube安装根目录(含插件、皮肤等),FPM变体需与Web服务器共享此目录 |
/var/roundcube/config | 自定义配置文件目录(挂载后持久化配置) |
/tmp/roundcube-temp | 临时文件目录(上传附件、缩略图等),多实例部署时需共享此目录 |
挂载示例(多目录持久化):
shdocker run \ -v roundcube-config:/var/roundcube/config \ -v roundcube-temp:/tmp/roundcube-temp \ -v roundcube-html:/var/www/html \ -d roundcube/roundcubemail
通过环境变量启用插件安装:
shdocker run -e ROUNDCUBEMAIL_INSTALL_PLUGINS=1 -d roundcube/roundcubemail
插件安装逻辑在容器启动时执行,需确保网络通畅。
shdocker run \ -e ROUNDCUBEMAIL_DEFAULT_HOST=imap.example.com \ -e ROUNDCUBEMAIL_SMTP_SERVER=smtp.example.com \ -p 8000:80 \ -d roundcube/roundcubemail
imap.example.com和smtp.example.com替换为实际IMAP/SMTP服务器地址http://localhost:8000打开Roundcube界面yamlversion: '3.8' services: roundcube: image: roundcube/roundcubemail:latest-apache ports: - "80:80" environment: - ROUNDCUBEMAIL_DEFAULT_HOST=imap.example.com - ROUNDCUBEMAIL_SMTP_SERVER=smtp.example.com - ROUNDCUBEMAIL_DB_TYPE=mysql - ROUNDCUBEMAIL_DB_HOST=mysql - ROUNDCUBEMAIL_DB_USER=roundcube - ROUNDCUBEMAIL_DB_PASSWORD=roundcube-pass - ROUNDCUBEMAIL_DB_NAME=roundcube volumes: - roundcube-temp:/tmp/roundcube-temp - roundcube-config:/var/roundcube/config depends_on: - mysql mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=root-pass - MYSQL_DATABASE=roundcube - MYSQL_USER=roundcube - MYSQL_PASSWORD=roundcube-pass volumes: - mysql-data:/var/lib/mysql volumes: mysql-data: roundcube-temp: roundcube-config:
基于官方镜像扩展(例如添加Git和Composer):
dockerfileFROM roundcube/roundcubemail:latest ENV COMPOSER_ALLOW_SUPERUSER=1 RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends \ git \ composer \ ; \ rm -rf /var/lib/apt/lists/*
构建命令:
shdocker build -t custom-roundcube .
更多完整部署示例(如Nginx+FPM、PostgreSQL集成等)可参考官方仓库:
https://github.com/roundcube/roundcubemail-docker/tree/master/examples
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 roundcube/roundcubemail 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: