群晖Docker部署RuoYi-flowable工作流系统实战指南准备工作与环境配置在群晖NAS上部署RuoYi-flowable工作流系统前需要确保满足以下基础条件硬件要求群晖NAS设备DSM 6.2及以上版本建议4GB以上内存系统运行约占用2.5GB至少10GB可用存储空间软件依赖Docker套件通过群晖套件中心安装Docker Compose通常随Docker套件自动安装终端访问工具如PuTTY或FinalShell网络环境确保NAS有稳定的网络连接建议为NAS分配静态IP地址提示在开始部署前建议先备份群晖中的重要数据避免操作失误导致数据丢失。系统部署全流程1. 获取部署文件RuoYi-flowable的Docker部署包可以通过以下方式获取wget https://github.com/wbsu2003/Dockerfile/raw/main/RuoYi-flowable/flowable.zip如果GitHub访问受限可尝试备用下载地址wget https://hub.fastgit.org/wbsu2003/Dockerfile/raw/main/RuoYi-flowable/flowable.zip下载完成后将压缩包上传至群晖的/docker/flowable目录如目录不存在需先创建。2. 解压与文件准备在群晖File Station中找到上传的flowable.zip文件右键选择解压缩。解压后目录结构应包含flowable/ ├── docker-compose.yaml ├── .env ├── sql/ │ └── init.sql ├── nginx.conf └── supervisord.conf关键注意事项.env文件默认是隐藏文件需在File Station中启用显示隐藏文件选项解压时可能会生成__MACOSX目录可以安全删除不要修改压缩包内的目录结构3. 环境变量配置编辑.env文件根据实际环境调整以下参数# MySQL数据库配置 MYSQL_DATABASEflowable MYSQL_ROOT_NAMEroot MYSQL_ROOT_PASSWORDyour_strong_password # Redis配置 REDIS_HOSTflow-redis REDIS_PASSWORD REDIS_PORT6379 # 数据源URL注意替换IP为群晖内网IP SPRING_DATASOURCE_URLjdbc:p6spy:mysql://192.168.1.100:12806/flowable?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLfalseserverTimezoneAsia/ShanghainullCatalogMeansCurrenttrue注意如果修改了MySQL的root密码请确保同时在docker-compose.yaml中相应位置更新。4. 端口配置检查默认使用的端口如下请确保这些端口在群晖防火墙中已开放服务容器端口主机端口协议应用前端8012880TCPMySQL330612806TCPRedis637912888TCP如需修改端口映射编辑docker-compose.yaml文件中对应的ports配置项。系统启动与验证1. 通过SSH启动服务使用SSH客户端连接群晖NAS执行以下命令# 进入部署目录 cd /volume1/docker/flowable # 启动所有服务-d参数表示后台运行 docker-compose up -d首次执行时会自动拉取所需的Docker镜像整个过程可能需要5-10分钟取决于网络速度。2. 检查服务状态执行以下命令查看容器运行状态docker-compose ps正常情况应显示类似以下输出Name Command State Ports --------------------------------------------------------------------------------- flow-app supervisord -c /etc/supervisord.conf Up 0.0.0.0:12880-80/tcp flow-mysql docker-entrypoint.sh --def ... Up 0.0.0.0:12806-3306/tcp flow-redis docker-entrypoint.sh redis ... Up 0.0.0.0:12888-6379/tcp3. 验证系统运行在浏览器中访问http://[群晖IP]:12880应该能看到RuoYi-flowable的登录界面。默认账号密码为用户名tony密码123456常见启动问题排查数据库初始化失败检查/docker/flowable/sql/init.sql文件是否存在查看MySQL容器日志docker logs flow-mysql应用启动超时检查内存是否充足free -h查看应用日志docker logs flow-app端口冲突使用netstat -tuln | grep 128查看端口占用情况修改.env和docker-compose.yaml中的端口配置系统配置与优化1. 性能调优建议根据群晖硬件配置可以调整以下参数优化性能MySQL配置优化 在docker-compose.yaml的MySQL服务部分添加flow-mysql: environment: - MYSQL_INNODB_BUFFER_POOL_SIZE256M - MYSQL_INNODB_LOG_FILE_SIZE64M - MYSQL_INNODB_FLUSH_LOG_AT_TRX_COMMIT2Java应用内存设置 修改supervisord.conf中的Java启动参数[program:backend] commandjava -Xms512m -Xmx1024m -jar ruoyi-admin.jar2. 定期维护设置日志轮转 在群晖控制面板中设置日志轮转策略避免日志文件过大。数据备份 建议定期备份以下内容MySQL数据卷mysql_dataRedis数据卷redis_data上传文件目录默认为/home/ruoyi/uploadPath容器更新 定期检查并更新容器镜像docker-compose pull docker-compose up -d高级功能配置1. 邮件服务集成在.env文件中添加以下配置启用邮件通知功能# 邮件服务器配置 SPRING_MAIL_HOSTsmtp.example.com SPRING_MAIL_USERNAMEyour_emailexample.com SPRING_MAIL_PASSWORDyour_email_password SPRING_MAIL_PORT465 SPRING_MAIL_PROPERTIES_MAIL_SMTPS_AUTHtrue SPRING_MAIL_PROPERTIES_MAIL_SMTPS_STARTTLS_ENABLEtrue SPRING_MAIL_PROPERTIES_MAIL_SMTPS_STARTTLS_REQUIREDtrue2. 自定义流程设计RuoYi-flowable支持通过可视化设计器创建业务流程登录系统后进入工作流-流程设计菜单使用内置的BPMN设计器绘制流程图设置各节点的审批人和业务规则部署流程定义后即可在业务中使用流程设计最佳实践为每个关键节点设置明确的处理人规则合理使用网关控制流程分支为重要节点添加业务监听器测试环境充分验证后再部署到生产3. 系统监控配置启用Prometheus监控指标采集在application.yml中添加配置management: endpoints: web: exposure: include: health,info,prometheus metrics: tags: application: ruoyi-flowable通过http://[群晖IP]:12880/actuator/prometheus访问指标数据故障排除与常见问题1. 部署常见错误问题1Node版本兼容性问题解决方案确保使用Node 12.x版本构建前端在Dockerfile中指定正确的基础镜像FROM node:12 as build-front问题2Java包依赖缺失解决方案编辑MyDefaultProcessDiagramCanvas.java文件注释掉有问题的import语句// import com.sun.prism.paint.Color;2. 运行时问题问题验证码不显示可能原因及解决方案Redis连接失败 - 检查.env中的Redis配置字体缺失 - 在Dockerfile中添加字体安装命令RUN apt-get update apt-get install -y fonts-wqy-zenhei问题流程无法启动检查步骤确认Flowable引擎已正确初始化检查数据库表是否完整创建查看应用日志中的错误信息3. 性能问题优化高并发场景优化建议增加Java堆内存commandjava -Xms1g -Xmx2g -jar ruoyi-admin.jar启用Redis缓存spring: cache: type: redis配置数据库连接池spring: datasource: druid: initial-size: 5 max-active: 20 min-idle: 5安全加固建议1. 基础安全配置修改默认凭证首次登录后立即修改管理员密码更新MySQL root密码修改.env和docker-compose.yaml网络隔离为Docker创建专用网络限制外部访问端口定期更新关注RuoYi-flowable的安全公告定期更新容器镜像2. 安全最佳实践启用HTTPS访问可通过群晖反向代理配置定期审计用户权限关闭不必要的API端点实施IP访问限制启用操作日志审计功能3. 备份策略建议实施以下备份方案备份内容频率存储位置保留策略数据库dump每日外部存储/NAS保留最近7天应用配置文件每周版本控制系统长期保留上传文件每日云存储保留最近30天完整系统镜像每月外部硬盘保留3个版本实施备份的示例命令# MySQL备份 docker exec flow-mysql mysqldump -uroot -p$MYSQL_ROOT_PASSWORD flowable /volume1/backups/flowable_$(date %Y%m%d).sql # Redis备份 docker exec flow-redis redis-cli save cp /var/lib/docker/volumes/flowable_redis_data/_data/dump.rdp /volume1/backups/redis_$(date %Y%m%d).rdp