别再手动折腾了!用Docker Compose一键部署DzzOffice+OnlyOffice协同办公环境(附完整YAML配置)

发布时间:2026/6/9 1:50:51

别再手动折腾了!用Docker Compose一键部署DzzOffice+OnlyOffice协同办公环境(附完整YAML配置) 高效协同办公新方案Docker Compose全栈部署DzzOffice与OnlyOffice在团队协作场景中文档处理与文件共享是刚需但传统部署方式往往需要繁琐的环境配置和组件调试。想象一下这样的场景当你需要为团队快速搭建一套完整的在线办公系统时传统方法可能需要分别安装数据库、Web应用和文档服务处理各种依赖关系和网络配置整个过程耗时且容易出错。这正是容器化技术大显身手的领域——通过Docker Compose我们能够用声明式配置一键部署所有服务。本文将介绍如何利用Docker Compose编排MySQL、DzzOffice和OnlyOffice三个关键组件构建一个开箱即用的协同办公环境。与手动逐个启动容器的方式相比这种方法具有以下显著优势环境一致性所有服务版本和配置集中管理避免在我机器上能运行的问题快速部署单个命令即可启动完整系统适合开发、测试和生产环境资源隔离各服务运行在独立容器中互不干扰又可通过网络通信配置即文档docker-compose.yml文件本身就是系统架构的最佳说明1. 环境准备与架构设计在开始部署前我们需要明确整个系统的架构设计。这套协同办公解决方案由三个核心组件构成MySQL 5.7作为DzzOffice的后端数据库存储用户数据和系统配置DzzOffice提供文件管理和协作平台的基础框架OnlyOffice Document Server实现文档的在线编辑和协作功能这三个组件的关系如下图所示虽然不能展示实际图表但可以描述DzzOffice作为前端界面与用户交互将文档数据存储在MySQL中当用户需要编辑文档时通过集成接口调用OnlyOffice的服务。1.1 系统要求确保部署机器满足以下最低配置操作系统支持Docker的Linux发行版如Ubuntu 18.04、CentOS 7内存至少4GBOnlyOffice需要2GB以上内存磁盘空间20GB以上可用空间Docker版本19.03Docker Compose版本1.25使用以下命令检查环境是否符合要求# 检查Docker版本 docker --version # 检查Docker Compose版本 docker-compose --version1.2 目录结构规划合理的目录结构能有效管理配置和数据文件。建议在宿主机上创建如下目录/opt/office_stack/ ├── docker-compose.yml # 编排配置文件 ├── mysql/ │ └── data/ # 数据库持久化数据 └── dzzoffice/ └── data/ # DzzOffice应用数据提示生产环境建议将数据目录挂载到独立的数据盘或存储系统上避免系统盘空间不足。2. Docker Compose编排配置下面是我们精心设计的docker-compose.yml文件它定义了三个服务及其相互关系version: 3.8 services: mysql: image: mysql:5.7.27 container_name: office_mysql environment: MYSQL_ROOT_PASSWORD: SecurePass123! MYSQL_DATABASE: dzzoffice MYSQL_USER: dzzuser MYSQL_PASSWORD: UserPass456! volumes: - /opt/office_stack/mysql/data:/var/lib/mysql networks: - office_network restart: unless-stopped healthcheck: test: [CMD, mysqladmin, ping, -h, localhost] interval: 5s timeout: 5s retries: 5 dzzoffice: image: imdevops/dzzoffice:latest container_name: office_dzz depends_on: mysql: condition: service_healthy volumes: - /opt/office_stack/dzzoffice/data:/var/www/html/data environment: - TZAsia/Shanghai ports: - 9090:80 networks: - office_network restart: unless-stopped onlyoffice: image: onlyoffice/documentserver container_name: office_docs ports: - 9000:80 networks: - office_network restart: unless-stopped environment: - JWT_ENABLEDfalse - TZAsia/Shanghai networks: office_network: driver: bridge这个配置文件的几个关键设计点网络隔离创建专用网络office_network确保服务间通信安全健康检查MySQL服务添加健康检查确保DzzOffice只在数据库就绪后启动环境变量集中管理敏感信息实际生产环境应使用Docker secrets时区设置统一设置Asia/Shanghai时区避免时间显示问题2.1 配置参数说明下表列出了主要可定制参数及其作用参数服务说明默认值是否必需MYSQL_ROOT_PASSWORDmysql数据库root密码无是MYSQL_DATABASEmysql自动创建的数据库名dzzoffice否MYSQL_USERmysql自动创建的用户名dzzuser否MYSQL_PASSWORDmysql自动用户的密码无否TZ所有容器时区设置Asia/Shanghai否JWT_ENABLEDonlyoffice是否启用JWT验证false否注意生产环境中务必使用强密码并考虑使用.env文件管理敏感信息避免将密码直接写入YAML文件。3. 部署与初始化有了docker-compose.yml文件后部署变得异常简单。在配置文件所在目录执行# 启动所有服务后台模式 docker-compose up -d # 查看服务状态 docker-compose ps系统启动后需要进行DzzOffice的初始化配置。打开浏览器访问http://服务器IP:9090/install/index.php按照安装向导完成以下步骤数据库配置数据库服务器mysql使用Docker服务名数据库名dzzoffice或compose中指定的名称用户名和密码对应compose中的MYSQL_USER和MYSQL_PASSWORD管理员账户设置创建系统管理员账号OnlyOffice集成进入应用市场安装OnlyOffice插件在插件设置中输入OnlyOffice服务地址http://服务器IP:9000设置DzzOffice服务器地址http://服务器IP:90903.1 常见问题排查部署过程中可能会遇到以下问题及解决方案权限问题如果DzzOffice无法写入data目录执行docker exec office_dzz chown -R www-data:www-data /var/www/html/dataOnlyOffice无法连接检查OnlyOffice容器是否正常运行docker logs office_docs确保防火墙开放了9000端口MySQL连接失败确认MySQL容器健康状态docker inspect office_mysql检查网络连通性docker exec office_dzz ping mysql4. 系统优化与维护部署完成后还需要考虑以下优化措施4.1 数据备份策略定期备份是生产环境的基本要求。建议设置以下备份方案# MySQL数据库备份 docker exec office_mysql mysqldump -u root -pSecurePass123! dzzoffice backup.sql # DzzOffice文件备份 tar czvf dzzoffice_backup.tar.gz /opt/office_stack/dzzoffice/data可以将这些命令加入crontab实现自动备份0 2 * * * /usr/bin/docker exec office_mysql mysqldump -u root -pSecurePass123! dzzoffice /backups/mysql_$(date \%Y\%m\%d).sql 0 3 * * * /bin/tar czvf /backups/dzzoffice_$(date \%Y\%m\%d).tar.gz /opt/office_stack/dzzoffice/data4.2 性能调优对于团队使用场景可以调整以下参数提升性能OnlyOffice增加文档处理worker数量配置Redis缓存MySQL调整InnoDB缓冲池大小优化查询缓存对应的docker-compose.yml调整示例onlyoffice: environment: - WORKER_PROCESSES4 - REDIS_SERVER_HOSTredis redis: image: redis:alpine networks: - office_network4.3 版本升级当需要升级组件版本时推荐流程备份数据和配置修改docker-compose.yml中的镜像版本执行docker-compose pull docker-compose up -d这种基于Docker Compose的部署方式使得系统维护和升级变得简单可控。

相关新闻