QD-Today项目Docker Compose部署指南
2025-07-08 04:02:46作者:裴锟轩Denise
项目概述
QD-Today是一个基于Docker容器化的任务调度与管理平台,通过Docker Compose可以快速部署整套服务。本文将详细解析其docker-compose.yml配置文件,帮助开发者理解如何正确配置和部署该系统。
核心服务架构
QD-Today采用典型的两层服务架构:
- 主服务(qd):基于qdtoday/qd镜像的任务管理核心
- Redis服务:作为缓存和消息队列的存储后端
详细配置解析
主服务(qd)配置
qd:
image: qdtoday/qd:latest
container_name: qd
depends_on:
- redis
ports:
- "8923:80"
volumes:
- "./config:/usr/src/app/config"
关键点说明:
-
镜像选择:
- 默认使用
latest
标签的稳定版 - 可选
lite-latest
精简版或dev
开发版
- 默认使用
-
端口映射:
- 将容器内80端口映射到宿主机8923端口
- 可根据需要修改左侧端口号
-
数据卷:
- 将本地
config
目录挂载到容器内配置目录 - 确保配置持久化且便于修改
- 将本地
Redis服务配置
redis:
image: redis:alpine
container_name: redis
command: ["--loglevel warning"]
volumes:
- ./redis/data:/data:rw
优化建议:
- 使用轻量级alpine版本Redis镜像
- 设置日志级别为warning减少日志输出
- 数据目录挂载确保持久化存储
环境变量详解
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服务器
部署实践建议
-
初次部署步骤:
- 创建
config
和redis/data
目录 - 复制示例docker-compose.yml文件
- 至少设置
DOMAIN
环境变量 - 执行
docker-compose up -d
- 创建
-
安全建议:
- 修改默认的
COOKIE_SECRET
和AES_KEY
- 考虑启用
COOKIE_SECURE_MODE
- 生产环境关闭
QD_DEBUG
- 修改默认的
-
性能优化:
- 根据服务器资源调整连接池参数
- 高并发场景增加
QUEUE_NUM
- 考虑启用
USE_PYCURL
提升请求性能
常见问题排查
-
端口冲突:
- 检查8923端口是否被占用
- 可修改为其他可用端口
-
Redis连接问题:
- 确保Redis服务正常启动
- 检查
REDISCLOUD_URL
配置
-
配置不生效:
- 确认config目录挂载正确
- 检查文件权限
- 重启服务使配置生效
进阶配置
对于需要更复杂部署的场景,可以考虑:
-
使用MySQL替代默认SQLite:
- 配置
DB_TYPE
为mysql - 设置
JAWSDB_MARIA_URL
连接字符串
- 配置
-
邮件通知集成:
- 配置SMTP相关参数
- 设置邮件发送人等信息
-
网络中转设置:
- 通过
NETWORK_RELAY
配置中转服务器 - 设置
DIRECT_CONNECT
规则直连网络
- 通过
通过合理配置docker-compose.yml文件,可以快速搭建适合不同场景的QD-Today服务环境。建议初次部署后,根据实际需求逐步调整各项参数以达到最佳运行效果。