首页
/ QD-Today项目Docker Compose部署指南

QD-Today项目Docker Compose部署指南

2025-07-08 04:02:46作者:裴锟轩Denise

项目概述

QD-Today是一个基于Docker容器化的任务调度与管理平台,通过Docker Compose可以快速部署整套服务。本文将详细解析其docker-compose.yml配置文件,帮助开发者理解如何正确配置和部署该系统。

核心服务架构

QD-Today采用典型的两层服务架构:

  1. 主服务(qd):基于qdtoday/qd镜像的任务管理核心
  2. Redis服务:作为缓存和消息队列的存储后端

详细配置解析

主服务(qd)配置

qd:
  image: qdtoday/qd:latest
  container_name: qd
  depends_on:
    - redis
  ports:
    - "8923:80"
  volumes:
    - "./config:/usr/src/app/config"

关键点说明

  1. 镜像选择:

    • 默认使用latest标签的稳定版
    • 可选lite-latest精简版或dev开发版
  2. 端口映射:

    • 将容器内80端口映射到宿主机8923端口
    • 可根据需要修改左侧端口号
  3. 数据卷:

    • 将本地config目录挂载到容器内配置目录
    • 确保配置持久化且便于修改

Redis服务配置

redis:
  image: redis:alpine
  container_name: redis
  command: ["--loglevel warning"]
  volumes:
    - ./redis/data:/data:rw

优化建议

  1. 使用轻量级alpine版本Redis镜像
  2. 设置日志级别为warning减少日志输出
  3. 数据目录挂载确保持久化存储

环境变量详解

QD-Today提供了丰富的环境变量配置选项,以下分类说明关键配置:

基础配置

  • DOMAIN:设置服务域名(必需)
  • COOKIE_SECRET:会话加密密钥(默认binux)
  • AES_KEY:数据加密密钥(默认binux)

性能调优

  • QD_SQL_POOL_SIZE:数据库连接池大小(默认5)
  • QD_SQL_MAX_OVERFLOW:连接池最大溢出数(默认10)
  • QD_SQL_POOL_RECYCLE:连接回收时间(秒,默认3600)

任务处理

  • WORKER_METHOD:任务处理方式(默认Queue)
  • QUEUE_NUM:任务队列数量(默认50)
  • TASK_MAX_RETRY_COUNT:任务最大重试次数(默认8)

网络配置

  • REQUEST_TIMEOUT:请求超时时间(秒,默认30.0)
  • CONNECT_TIMEOUT:连接超时时间(秒,默认30.0)
  • DNS_SERVER:自定义DNS服务器

部署实践建议

  1. 初次部署步骤

    • 创建configredis/data目录
    • 复制示例docker-compose.yml文件
    • 至少设置DOMAIN环境变量
    • 执行docker-compose up -d
  2. 安全建议

    • 修改默认的COOKIE_SECRETAES_KEY
    • 考虑启用COOKIE_SECURE_MODE
    • 生产环境关闭QD_DEBUG
  3. 性能优化

    • 根据服务器资源调整连接池参数
    • 高并发场景增加QUEUE_NUM
    • 考虑启用USE_PYCURL提升请求性能

常见问题排查

  1. 端口冲突

    • 检查8923端口是否被占用
    • 可修改为其他可用端口
  2. Redis连接问题

    • 确保Redis服务正常启动
    • 检查REDISCLOUD_URL配置
  3. 配置不生效

    • 确认config目录挂载正确
    • 检查文件权限
    • 重启服务使配置生效

进阶配置

对于需要更复杂部署的场景,可以考虑:

  1. 使用MySQL替代默认SQLite:

    • 配置DB_TYPE为mysql
    • 设置JAWSDB_MARIA_URL连接字符串
  2. 邮件通知集成:

    • 配置SMTP相关参数
    • 设置邮件发送人等信息
  3. 网络中转设置:

    • 通过NETWORK_RELAY配置中转服务器
    • 设置DIRECT_CONNECT规则直连网络

通过合理配置docker-compose.yml文件,可以快速搭建适合不同场景的QD-Today服务环境。建议初次部署后,根据实际需求逐步调整各项参数以达到最佳运行效果。