使用Docker Compose部署Mindoc文档管理系统的完整指南
2025-07-07 03:29:21作者:田桥桑Industrious
Mindoc是一款优秀的文档管理系统,基于Go语言开发,支持Markdown语法,适合团队协作和知识管理。本文将详细介绍如何使用Docker Compose快速部署Mindoc系统。
系统架构概述
Mindoc的Docker Compose部署方案采用单服务架构,主要包含以下组件:
- Mindoc应用服务:基于官方Docker镜像运行的核心服务
- 数据持久化:通过卷挂载实现配置文件和数据的持久化存储
- 环境配置:通过环境变量控制应用行为
部署前准备
在开始部署前,请确保您的服务器满足以下条件:
- 已安装Docker引擎(版本17.06.0+)
- 已安装Docker Compose(版本1.18.0+)
- 服务器内存建议不少于2GB
- 磁盘空间建议不少于10GB(根据文档存储需求可调整)
配置文件详解
以下是核心配置文件的逐项解析:
基础服务定义
version: "3"
services:
mindoc:
image: registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1
container_name: mindoc
privileged: false
restart: always
version: "3"
:指定使用的Compose文件格式版本image
:使用阿里云镜像仓库的官方Mindoc镜像,版本为v2.1container_name
:指定容器名称为"mindoc"privileged: false
:不以特权模式运行,提高安全性restart: always
:容器意外退出时自动重启
网络端口映射
ports:
- 8181:8181
将容器内部的8181端口映射到主机的8181端口,用户可通过http://服务器IP:8181
访问Mindoc服务。
数据持久化配置
volumes:
- /var/www/mindoc/conf://mindoc/conf
- /var/www/mindoc/static://mindoc/static
- /var/www/mindoc/views://mindoc/views
- /var/www/mindoc/uploads://mindoc/uploads
- /var/www/mindoc/runtime://mindoc/runtime
- /var/www/mindoc/database://mindoc/database
这些卷挂载确保了以下数据的持久化:
- conf:配置文件目录
- static:静态资源文件(CSS/JS/图片等)
- views:视图模板文件
- uploads:用户上传的文件
- runtime:运行时生成的临时文件
- database:数据库文件(使用SQLite时特别重要)
关键环境变量
environment:
- MINDOC_RUN_MODE=prod
- MINDOC_DB_ADAPTER=sqlite3
- MINDOC_DB_DATABASE=./database/mindoc.db
- MINDOC_CACHE=true
- MINDOC_CACHE_PROVIDER=file
- MINDOC_ENABLE_EXPORT=false
MINDOC_RUN_MODE=prod
:指定生产环境模式MINDOC_DB_ADAPTER=sqlite3
:使用SQLite作为数据库(适合小型部署)MINDOC_CACHE=true
:启用缓存提高性能MINDOC_ENABLE_EXPORT=false
:默认禁用导出功能(可根据需要开启)
DNS配置
dns:
- 223.5.5.5
- 223.6.6.6
配置阿里云的公共DNS服务,确保容器内网络解析正常。
部署步骤
-
创建必要的目录结构:
mkdir -p /var/www/mindoc/{conf,static,views,uploads,runtime,database}
-
将上述docker-compose.yml文件保存到合适位置(如
/opt/mindoc
) -
启动服务:
docker-compose up -d
-
检查服务状态:
docker-compose ps
-
查看日志确认服务正常运行:
docker-compose logs -f
高级配置建议
数据库配置
默认使用SQLite适合小型团队,对于中大型团队建议:
-
修改为MySQL数据库:
environment: - MINDOC_DB_ADAPTER=mysql - MINDOC_DB_HOST=mysql_host - MINDOC_DB_PORT=3306 - MINDOC_DB_DATABASE=mindoc - MINDOC_DB_USERNAME=root - MINDOC_DB_PASSWORD=your_password
-
添加MySQL服务到docker-compose.yml
性能优化
-
启用Redis缓存:
environment: - MINDOC_CACHE_PROVIDER=redis - MINDOC_REDIS_HOST=redis_host - MINDOC_REDIS_PORT=6379
-
调整上传文件大小限制: 修改conf/app.conf中的
upload_max_size
值
常见问题排查
-
权限问题:确保挂载目录对Docker进程可写
chown -R 1000:1000 /var/www/mindoc
-
端口冲突:如果8181端口被占用,可修改为其他端口
-
初始化失败:检查数据库文件是否可写,特别是使用SQLite时
维护与升级
- 定期备份挂载目录,特别是database和uploads
- 升级版本时,修改image标签后重新部署
- 监控磁盘空间使用情况,及时清理不必要的文件
通过本文介绍的Docker Compose部署方案,您可以快速搭建一个稳定运行的Mindoc文档管理系统。这种部署方式具有隔离性好、易于维护、方便迁移等优势,适合各种规模的组织使用。