WiseFlow项目Docker Compose部署指南:构建智能工作流系统
2025-07-07 03:27:43作者:宗隆裙
项目概述
WiseFlow是一个基于PocketBase和Playwright构建的智能工作流系统,通过Docker Compose可以快速部署整个服务栈。本文将详细解析项目中的docker-compose.yml文件配置,帮助开发者理解系统架构和部署要点。
核心服务架构
WiseFlow系统由两个主要服务组成:
- PocketBase服务:作为后端数据库和API服务
- Core服务:基于Playwright的核心业务逻辑处理服务
详细配置解析
1. PocketBase服务配置
pocketbase:
image: ghcr.io/muchobien/pocketbase:latest
ports:
- '8090:8090'
volumes:
- ./pb:/pb
restart: unless-stopped
entrypoint: sh -c '/usr/local/bin/pocketbase superuser upsert $PB_SUPERUSER_EMAIL $PB_SUPERUSER_PASSWORD --dev --dir=/pb/pb_data && /usr/local/bin/pocketbase serve --dev --http=0.0.0.0:8090 --dir=/pb/pb_data --publicDir=/pb_public --hooksDir=/pb_hooks --migrationsDir=/pb/pb_migrations'
environment:
- PB_SUPERUSER_EMAIL=${PB_SUPERUSER_EMAIL}
- PB_SUPERUSER_PASSWORD=${PB_SUPERUSER_PASSWORD}
关键点解析:
- 使用最新版PocketBase镜像,这是一个开源的实时后端服务
- 将8090端口映射到宿主机,方便外部访问
- 通过volume挂载本地pb目录到容器内,实现数据持久化
- 启动时自动创建或更新超级用户,确保系统有管理员账户
- 开发模式(--dev)运行,适合调试环境
- 配置了数据目录、公共目录、钩子目录和迁移目录
最佳实践建议:
- 生产环境应移除--dev标志
- 超级用户凭证应通过环境变量安全传递
- 考虑定期备份pb_data目录
2. Core服务配置
core:
image: mcr.microsoft.com/playwright/python:v1.51.0-jammy
volumes:
- ./core:/app
- ./docker/pip_cache:/root/.cache/pip
- ${PROJECT_DIR}:/work_dir
working_dir: /app
command: sh -c 'pip install -r requirements.txt && python run_task.py'
environment:
- PB_API_BASE=http://pocketbase:8090
- PB_API_AUTH=${PB_SUPERUSER_EMAIL}|${PB_SUPERUSER_PASSWORD}
- VL_MODEL=${VL_MODEL}
- PROJECT_DIR=/work_dir
- LLM_API_KEY=${LLM_API_KEY}
- LLM_API_BASE=${LLM_API_BASE}
- ZHIPU_API_KEY=${ZHIPU_API_KEY}
- PRIMARY_MODEL=${PRIMARY_MODEL}
- SECONDARY_MODEL=${SECONDARY_MODEL}
- LLM_CONCURRENT_NUMBER=${LLM_CONCURRENT_NUMBER:-1}
- VERBOSE=${VERBOSE:-""}
depends_on:
- pocketbase
关键点解析:
- 基于微软Playwright Python镜像,内置浏览器自动化能力
- 挂载三个关键目录:
- core目录:包含核心业务代码
- pip缓存目录:加速依赖安装
- 项目目录:工作目录,路径通过环境变量配置
- 启动流程:
- 安装Python依赖
- 执行run_task.py主程序
- 丰富的环境变量配置:
- 连接PocketBase的API地址和认证信息
- 视觉语言模型(VL_MODEL)配置
- 多个LLM相关API密钥和配置
- 并发控制参数(LLM_CONCURRENT_NUMBER)
- 明确依赖关系:确保PocketBase先启动
技术亮点:
- 多模型支持:通过PRIMARY_MODEL和SECONDARY_MODEL支持主备模型配置
- 并发控制:LLM_CONCURRENT_NUMBER可调节系统负载
- 调试支持:VERBOSE环境变量控制日志详细程度
部署准备与建议
环境变量准备
部署前需要准备以下环境变量:
PB_SUPERUSER_EMAIL=管理员邮箱
PB_SUPERUSER_PASSWORD=管理员密码
PROJECT_DIR=项目工作目录路径
LLM_API_KEY=大模型API密钥
ZHIPU_API_KEY=智谱API密钥(可选)
PRIMARY_MODEL=主模型名称
部署步骤
- 创建.env文件配置环境变量
- 确保Docker和Docker Compose已安装
- 执行
docker-compose up -d
启动服务 - 检查日志确认服务正常运行
性能调优建议
- 根据硬件资源调整LLM_CONCURRENT_NUMBER
- 生产环境考虑添加资源限制(CPU/MEMORY)
- 对PocketBase启用定期备份策略
- 考虑添加健康检查配置
常见问题排查
-
PocketBase启动失败:
- 检查pb目录权限
- 确认环境变量已正确设置
-
Core服务依赖安装失败:
- 检查网络连接
- 确认requirements.txt文件存在
-
服务间通信问题:
- 确认depends_on配置正确
- 检查PocketBase是否监听正确地址
总结
WiseFlow的Docker Compose配置展示了现代微服务架构的典型设计模式,通过容器化技术实现了:
- 服务隔离与独立扩展
- 配置与代码分离
- 开发与生产环境一致性
- 依赖管理和自动化部署
理解这份配置文件对于定制化部署和二次开发WiseFlow系统至关重要。开发者可以根据实际需求调整配置参数,优化系统性能。