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

Automatisch项目Docker Compose部署指南

2025-07-06 04:04:45作者:柯茵沙

概述

Automatisch是一个自动化工作流平台,本文将从技术角度详细解析其Docker Compose部署方案,帮助开发者理解其架构设计和部署要点。

核心服务架构

Automatisch采用微服务架构设计,通过Docker Compose编排了四个核心服务:

  1. 主服务(main):提供Web界面和API服务
  2. 工作服务(worker):处理后台任务和异步作业
  3. PostgreSQL数据库:持久化存储应用数据
  4. Redis服务:缓存和消息队列功能

详细配置解析

主服务配置

主服务暴露3000端口,提供Web访问能力。关键配置包括:

  • 构建使用项目内的Dockerfile.compose文件
  • 依赖PostgreSQL和Redis服务
  • 环境变量配置数据库连接、加密密钥等
  • 挂载存储卷automatisch_storage用于持久化数据
main:
  build:
    context: ./docker
    dockerfile: Dockerfile.compose
  ports:
    - '3000:3000'
  environment:
    - HOST=localhost
    - PROTOCOL=http
    - PORT=3000
    - APP_ENV=production

工作服务配置

工作服务与主服务共享代码基础,通过WORKER环境变量区分角色:

  • 不暴露端口,仅处理后台任务
  • 依赖主服务启动完成
  • 使用相同的数据库和Redis配置
  • 共享存储卷确保文件访问一致性
worker:
  environment:
    - WORKER=true

数据库服务

采用PostgreSQL 14.5版本,配置了:

  • 自动初始化数据库和用户
  • 数据持久化到postgres_data卷
  • 健康检查确保服务可用性
postgres:
  healthcheck:
    test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']

Redis服务

使用Redis 7.0.4版本:

  • 数据持久化到redis_data卷
  • 作为消息队列和缓存使用

关键环境变量

项目运行依赖几个重要环境变量:

  1. ENCRYPTION_KEY:数据加密密钥
  2. WEBHOOK_SECRET_KEY:Webhook验证密钥
  3. APP_SECRET_KEY:应用会话加密密钥

这些敏感信息建议通过外部方式注入,不应硬编码在配置文件中。

数据持久化方案

配置了三个持久化卷:

  1. automatisch_storage:应用文件存储
  2. postgres_data:数据库数据
  3. redis_data:Redis缓存数据

确保服务重启后数据不丢失。

部署实践建议

  1. 生产环境调整:将HOST和PROTOCOL改为实际域名和HTTPS
  2. 资源限制:为各服务添加CPU和内存限制
  3. 密钥管理:使用Docker secret或外部配置管理敏感信息
  4. 监控集成:添加Prometheus等监控组件
  5. 日志收集:配置ELK等日志系统

扩展思考

该架构展示了典型Web应用的Docker化部署模式,可以学习到:

  • 前后台服务分离设计
  • 有状态服务的健康检查机制
  • 微服务间的依赖管理
  • 配置与代码分离的最佳实践

通过理解这个部署方案,开发者可以将其应用到其他类似项目的容器化部署中。