使用 Docker Compose 部署

本指南将帮助你使用 Docker Compose 在生产环境部署 Loonflow。

前置条件

开始之前,请确保满足以下条件:

  • Linux 服务器(参考 服务器硬件要求

  • 已安装 Docker 20.10+

  • 已安装 Docker Compose 2.0+

安装 Docker 与 Docker Compose

若服务器尚未安装 Docker 与 Docker Compose,请按以下步骤操作:

  1. 安装 Docker:

    # Ubuntu/Debian
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    
    # CentOS/RHEL
    sudo yum install -y docker
    sudo systemctl start docker
    sudo systemctl enable docker
    
  2. 安装 Docker Compose:

    # Download the latest version of Docker Compose
    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 验证安装:

    docker --version
    docker-compose --version
    

下载 Docker Compose 配置文件

  1. 创建部署目录:

    mkdir -p /opt/loonflow
    cd /opt/loonflow
    
  2. 下载所需配置文件:

    wget https://raw.githubusercontent.com/blackholll/loonflow/refs/heads/master/docker_compose_deploy/docker-compose.yml
    wget https://raw.githubusercontent.com/blackholll/loonflow/refs/heads/master/docker_compose_deploy/.env
    

    如果你已克隆仓库,也可以直接复制文件:

配置环境变量

编辑 .env 文件,配置以下必要的环境变量:

# Edit the .env file
vi .env

重要配置项:

  • 数据库配置

    • POSTGRES_USER:PostgreSQL 数据库用户名(默认:loonflow)

    • POSTGRES_PASSWORD:PostgreSQL 数据库密码(必须修改

    • POSTGRES_DB:数据库名(默认:loonflow)

    • POSTGRES_PORT:PostgreSQL 端口(默认:5432)

  • Redis 配置

    • REDIS_PASSWORD:Redis 密码(必须修改

    • REDIS_PORT:Redis 端口(默认:6379)

  • 管理员账号配置

    • ADMIN_EMAIL:管理员邮箱(用于登录)

    • ADMIN_NAME:管理员用户名

    • ADMIN_PASSWORD:管理员密码(必须修改

  • 租户配置

    • TENANT_NAME:租户名称

    • TENANT_DOMAIN:租户域名

  • 数据卷配置

    • PG_DATA_VOLUME:PostgreSQL 数据卷名称(用于数据持久化)

安全提示: 请务必修改所有与密码相关的配置项,并使用强密码以保障系统安全。

启动服务

  1. 确认当前所在目录包含 docker-compose.yml 文件:

    cd /opt/loonflow
    
  2. 启动全部服务:

    docker-compose up -d
    

    该命令将在后台启动以下服务:

    • loonflow-redis:Redis 服务(用于生成工单流水号和 Celery 异步任务)

    • loonflow-pg:PostgreSQL 数据库服务

    • loonflow-backend:Loonflow 后端服务(Django + Gunicorn)

    • loonflow-ui:Loonflow 前端服务(Nginx)

    • loonflow-task:Celery 任务处理服务

  3. 检查服务状态:

    docker-compose ps
    
  4. 查看服务日志(可选):

    # View logs for all services
    docker-compose logs -f
    
    # View logs for a specific service
    docker-compose logs -f loonflow-backend
    

访问应用

服务启动后,可通过浏览器访问 Loonflow:

  • 访问地址http://your_server_ip:80

  • 登录凭据

    • 邮箱:.env 中配置的 ADMIN_EMAIL

    • 密码:.env 中配置的 ADMIN_PASSWORD

常用管理命令

  • 停止服务

    docker-compose stop
    
  • 启动服务

    docker-compose start
    
  • 重启服务

    docker-compose restart
    
  • 停止并移除容器

    docker-compose down
    
  • 停止并移除容器及数据卷**(**警告:这将删除数据库数据):

    docker-compose down -v
    
  • 更新服务

    # Pull the latest images
    docker-compose pull
    
    # Recreate and start containers
    docker-compose up -d
    

故障排查

如遇问题,可尝试以下步骤:

  1. 检查服务状态

    docker-compose ps
    
  2. 查看服务日志

    docker-compose logs [service_name]
    
  3. 检查端口占用

    # Check if port 80 is in use
    netstat -tulpn | grep :80
    
  4. 检查防火墙设置

    确保防火墙放行以下端口:

    • 80:HTTP 访问

    • 8000:后端 API(如需直接访问)

    • 5432:PostgreSQL(如需外部访问)

    • 6379:Redis(如需外部访问)

  5. 重启服务

    docker-compose restart [service_name]
    

重要说明

  • 首次启动时,后端服务会自动执行数据库迁移并创建超级管理员,可能需要几分钟

  • 确保服务器有足够的资源(CPU、内存、磁盘空间)

  • 定期备份 PostgreSQL 数据卷(pg_data

  • 生产环境应配置 HTTPS 和反向代理