该镜像用于部署GNU Mailman 3邮件列表管理系统的核心组件。运行容器时必须挂载/opt/mailman目录以持久化存储var目录及配置文件,确保数据跨容器会话保留。支持通过环境变量配置数据库连接、REST API参数及邮件传输代理(MTA),可独立运行或配合docker-compose使用。
/opt/mailman目录,确保配置、数据及状态持久化sqlite、postgres、mysql三种数据库类型/opt/mailman/mailman.cfg文件覆盖默认配置适用于需要部署Mailman 3邮件列表服务的场景,适合中小型邮件列表管理需求。可作为独立服务运行,或集成到包含数据库、Web界面(如Hyperkitty)的完整邮件列表系统中。
部署前需确保以下环境变量已正确配置:
HYPERKITTY_API_KEY:Hyperkitty API密钥,需与mailman-core配置值一致DATABASE_URL:数据库连接URL,格式为driver://user:password@hostname:port/databasenamesqlite:///opt/mailman-web-data/mailmanweb.db,标准docker-compose配置使用PostgreSQLDATABASE_TYPE:数据库类型,可选值:sqlite、postgres、mysql(Mailman 3仅支持这三种)sqliteDATABASE_CLASS:数据库驱动类,默认值:mailman.database.sqlite.SQLiteDatabase使用标准docker-compose配置时,以下变量通常无需修改:
MM_HOSTNAME:REST API和LMTP绑定的主机名/IP,默认使用容器主机名MAILMAN_REST_PORT:REST API端口,默认8001MAILMAN_REST_USER:REST API管理员用户名,默认restadminMAILMAN_REST_PASSWORD:REST API管理员密码,默认restpassMTA:邮件传输代理类型,可选exim或postfix,默认eximSMTP_HOST:发送邮件的SMTP主机,默认使用容器网关(通过/sbin/ip route获取)SMTP_PORT:SMTP端口,默认25HYPERKITTY_URL:Hyperkitty归档服务URL,默认[***]如需调整REST API的Gunicorn服务器参数(如超时时间),可在主机创建/opt/mailman/core/gunicorn-extra.cfg文件,添加自定义配置。默认使用Mailman Core自带的Gunicorn配置。
示例(增加超时时间):
[gunicorn] graceful_timeout = 30 timeout = 300
创建持久化目录并运行容器(需替换必要环境变量):
bash# 创建持久化目录 mkdir -p /opt/mailman/core # 启动容器,替换HYPERKITTY_API_KEY为实际值 docker run -it -e "HYPERKITTY_API_KEY=需修改为实际密钥" -h mailman-core -v /opt/mailman/core:/opt/mailman mailman-core
注意:若未配置
DATABASE_URL,数据库可能无法持久化。建议使用***docker-compose配置确保完整功能。
如需自定义配置,可在主机创建/opt/mailman/mailman.cfg文件,该文件将覆盖容器默认配置及环境变量设置的参数。
容器启动时自动生成以下配置文件(可通过mailman.cfg覆盖):
[mta] incoming: mailman.mta.exim4.LMTP outgoing: mailman.mta.deliver.deliver lmtp_host: $MM_HOSTNAME lmtp_port: 8024 smtp_host: $SMTP_HOST smtp_port: $SMTP_PORT configuration: python:mailman.config.exim4 [runner.retry] sleep_time: 10s [webservice] hostname: $MM_HOSTNAME port: $MAILMAN_REST_PORT admin_user: $MAILMAN_REST_USER admin_pass: $MAILMAN_REST_PASSWORD configuration: /etc/gunicorn.cfg [archiver.hyperkitty] class: mailman_hyperkitty.Archiver enable: yes configuration: /etc/mailman-hyperkitty.cfg [database] class: $DATABASE_CLASS url: $DATABASE_URL
[general] base_url: $HYPERKITTY_URL api_key: $HYPERKITTY_API_KEY
Mailman Core支持与任何支持LMTP协议的现代MTA配合使用,目前已测试并支持Postfix和Exim。其他MTA在容器化环境中可能存在兼容性限制。
Postfix/Exim详细配置说明请参考***MTA设置文档。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 等镜像仓库
无需登录使用专属域名加速