首页
/ Windmill 项目 Docker Compose 部署指南

Windmill 项目 Docker Compose 部署指南

2025-07-06 02:30:33作者:冯爽妲Honey

概述

Windmill 是一个开源的自动化工作流平台,本文将从技术角度详细解析其 Docker Compose 部署方案。通过这份部署文件,我们可以了解 Windmill 的系统架构和各个组件的功能定位。

核心组件解析

1. 数据库服务

数据库采用 PostgreSQL 16 版本,配置了以下关键参数:

  • 共享内存设置为 1GB (shm_size)
  • 数据持久化到 db_data 卷
  • 健康检查机制确保服务可用性
  • 日志配置采用 JSON 格式,支持日志轮转和压缩

2. Windmill 主服务

Windmill 服务分为三种角色:

  1. Server 服务

    • 处理 API 请求和系统管理功能
    • 监听 8000 和 2525 端口
    • 依赖数据库服务健康状态
  2. Worker 服务

    • 默认启动 3 个实例
    • 每个实例限制 1 CPU 和 2GB 内存
    • 挂载 Docker 套接字以支持容器化任务
    • 使用专门的卷存储依赖缓存和日志
  3. Native Worker 服务

    • 专为轻量级任务优化的特殊 Worker
    • 配置了 8 个工作线程
    • 使用更短的队列检查间隔(200ms)

3. 辅助服务

  1. 索引服务

    • 提供全文搜索功能(企业版特性)
    • 默认禁用(replicas: 0)
    • 使用专用卷存储索引数据
  2. 语言服务器(LSP)

    • 提供代码补全和语法检查
    • 缓存存储在 lsp_cache 卷
  3. 多人协作服务

    • 企业版专属功能
    • 默认禁用
  4. Caddy 反向代理

    • 提供 HTTP/25 端口转发
    • 支持自定义证书配置
    • 数据存储在 caddy_data 卷

部署配置要点

  1. 环境变量配置

    • DATABASE_URL 可指向外部数据库
    • WM_IMAGE 指定 Windmill 镜像版本
    • 日志大小和数量可通过环境变量调整
  2. 资源限制

    • Worker 实例有明确的 CPU/内存限制
    • 内存可使用 GiB 单位(如 2Gi)
  3. 持久化存储

    • 数据库、缓存、日志、索引等数据都配置了专用卷
    • 确保服务重启后数据不丢失
  4. 健康检查

    • 数据库服务配置了 pg_isready 检查
    • 确保依赖服务就绪后再启动应用

高级配置建议

  1. 生产环境调整

    • 考虑增加 Worker 实例数量
    • 根据负载调整资源限制
    • 启用索引服务以支持全文搜索
  2. 安全建议

    • 修改默认的 PostgreSQL 密码
    • 配置 HTTPS 访问
    • 限制 Docker 套接字访问权限
  3. 监控方案

    • 利用 JSON 格式日志便于采集分析
    • 监控各服务健康状态
    • 关注卷存储使用情况

总结

这份 Docker Compose 文件展示了 Windmill 的微服务架构设计,通过合理的服务拆分和资源配置,实现了功能模块化和弹性扩展能力。部署时可根据实际需求调整副本数量、资源配额和功能开关,平衡系统性能和资源消耗。