本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

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变体,镜像体积更小,资源占用更低| 环境变量 | 默认值 | 说明 |
|---|---|---|
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 | / | 反向代理场景下的请求路径,详情见defaults.inc.php |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
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) |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
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 | 数据库名称 |
默认使用容器内SQLite数据库(路径/var/roundcube/db),适用于测试环境。生产环境需通过卷挂载持久化数据:
docker run -v roundcube-db:/var/roundcube/db -d roundcube/roundcubemail
配置示例(MySQL):
docker 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客户端密钥 |
使用示例:
version: '3.8' secrets: db_password: file: ./db_password.txt services: roundcube: image: roundcube/roundcubemail secrets: - source: db_password target: roundcube_db_password
通过挂载目录到/var/roundcube/config,添加*.php文件实现配置覆盖(支持PHP语法):
docker run -v ./custom-config:/var/roundcube/config -d roundcube/roundcubemail
配置参考:Roundcube配置选项
挂载PHP配置文件到/usr/local/etc/php/conf.d/zzz_roundcube-custom.ini自定义PHP设置:
# custom-php.ini memory_limit = 128M upload_max_filesize = 10M
启动命令:
docker 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 | 临时文件目录(上传附件、缩略图等),多实例部署时需共享此目录 |
挂载示例(多目录持久化):
docker run \ -v roundcube-config:/var/roundcube/config \ -v roundcube-temp:/tmp/roundcube-temp \ -v roundcube-html:/var/www/html \ -d roundcube/roundcubemail
通过环境变量启用插件安装:
docker run -e ROUNDCUBEMAIL_INSTALL_PLUGINS=1 -d roundcube/roundcubemail
插件安装逻辑在容器启动时执行,需确保网络通畅。
docker 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界面version: '3.8' services: roundcube: image: roundcube/roundcub***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):
FROM roundcube/roundcub***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/*
构建命令:
docker build -t custom-roundcube .
更多完整部署示例(如Nginx+FPM、PostgreSQL集成等)可参考***仓库:
Roundcube Docker示例
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429