首页
/ WiseFlow项目Docker Compose部署指南:构建智能工作流系统

WiseFlow项目Docker Compose部署指南:构建智能工作流系统

2025-07-07 03:27:43作者:宗隆裙

项目概述

WiseFlow是一个基于PocketBase和Playwright构建的智能工作流系统,通过Docker Compose可以快速部署整个服务栈。本文将详细解析项目中的docker-compose.yml文件配置,帮助开发者理解系统架构和部署要点。

核心服务架构

WiseFlow系统由两个主要服务组成:

  1. PocketBase服务:作为后端数据库和API服务
  2. 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缓存目录:加速依赖安装
    • 项目目录:工作目录,路径通过环境变量配置
  • 启动流程:
    1. 安装Python依赖
    2. 执行run_task.py主程序
  • 丰富的环境变量配置:
    • 连接PocketBase的API地址和认证信息
    • 视觉语言模型(VL_MODEL)配置
    • 多个LLM相关API密钥和配置
    • 并发控制参数(LLM_CONCURRENT_NUMBER)
  • 明确依赖关系:确保PocketBase先启动

技术亮点

  1. 多模型支持:通过PRIMARY_MODEL和SECONDARY_MODEL支持主备模型配置
  2. 并发控制:LLM_CONCURRENT_NUMBER可调节系统负载
  3. 调试支持:VERBOSE环境变量控制日志详细程度

部署准备与建议

环境变量准备

部署前需要准备以下环境变量:

PB_SUPERUSER_EMAIL=管理员邮箱
PB_SUPERUSER_PASSWORD=管理员密码
PROJECT_DIR=项目工作目录路径
LLM_API_KEY=大模型API密钥
ZHIPU_API_KEY=智谱API密钥(可选)
PRIMARY_MODEL=主模型名称

部署步骤

  1. 创建.env文件配置环境变量
  2. 确保Docker和Docker Compose已安装
  3. 执行docker-compose up -d启动服务
  4. 检查日志确认服务正常运行

性能调优建议

  • 根据硬件资源调整LLM_CONCURRENT_NUMBER
  • 生产环境考虑添加资源限制(CPU/MEMORY)
  • 对PocketBase启用定期备份策略
  • 考虑添加健康检查配置

常见问题排查

  1. PocketBase启动失败

    • 检查pb目录权限
    • 确认环境变量已正确设置
  2. Core服务依赖安装失败

    • 检查网络连接
    • 确认requirements.txt文件存在
  3. 服务间通信问题

    • 确认depends_on配置正确
    • 检查PocketBase是否监听正确地址

总结

WiseFlow的Docker Compose配置展示了现代微服务架构的典型设计模式,通过容器化技术实现了:

  • 服务隔离与独立扩展
  • 配置与代码分离
  • 开发与生产环境一致性
  • 依赖管理和自动化部署

理解这份配置文件对于定制化部署和二次开发WiseFlow系统至关重要。开发者可以根据实际需求调整配置参数,优化系统性能。