Files
litellm-config/docker-compose.yml
T
vibe-code 6a2760bd03 feat: 每日消耗任务触发时点 23:00 改为 23:20
- volc_limit_sync:_maybe_trigger_daily_consume 改分钟级判断(23:20 起触发),
  线程内 0-10 分钟随机抖动保留,实际执行窗口 23:20~23:30
- volc_consume:main 手动运行门卫同步 23:20 窗口(--force/--dry-run 不受限)
- docs/volc-quota-notes §9:consume clamp2 余额快照滞后在最新思路(§4.2 量化
  L=149,616)下确认为必改项,方向待定;消耗任务口径同步收紧标记 [x]
- 全仓文档/注释 23:00 统一同步为 23:20(AGENTS/README/docker-compose/两 docs)
2026-08-13 06:08:26 +00:00

88 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
services:
litellm:
mem_limit: 2048m
image: ghcr.io/berriai/litellm:main-latest # 注意:1.82.7,1.82.8被投毒
#image: ghcr.io/berriai/litellm@sha256:7c311546c25e7bb6e8cafede9fcd3d0d622ac636b5c9418befaa32e85dfb0186
container_name: litellm
restart: unless-stopped
volumes:
- ./config.yaml:/app/config.yaml
# 【关键】挂载自定义脚本到容器根目录
- ./volc_limit_sync.py:/app/volc_limit_sync.py
# 自动消耗任务(每日 23:20 由 volc_limit_sync 调度触发)
- ./volc_consume.py:/app/volc_consume.py
# 消耗任务语料:宿主真实系统日志(只读)
- /var/log:/host-var-log:ro
command:
- "--config=/app/config.yaml"
ports:
- "23003:4000"
environment:
TZ: Asia/Shanghai
# ⚠️ 必须设置这个环境变量,否则 Python 找不到你的脚本
PYTHONPATH: "/app"
DATABASE_URL: "postgresql://litellm_app:shriek-sixfold-ethanol@192.168.1.34:5432/litellm"
STORE_MODEL_IN_DB: "True"
# --- Modified: 添加 Redis 配置 ---
REDIS_HOST: "redis" # 对应下方 redis 服务的名字
REDIS_PORT: "6379"
# -------------------------------
env_file:
- .env
depends_on:
# - db
- redis # --- New: 依赖 redis 启动 ---
healthcheck:
test:
- CMD-SHELL
- python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:4000/health/liveliness')"
interval: 300s
timeout: 10s
retries: 3
start_period: 40s
# --- New: 添加 Redis 服务 ---
redis:
image: redis:alpine # 使用 alpine 版本,体积非常小
container_name: litellm_redis
restart: unless-stopped
# --maxmemory 512mb : 限制 Redis 最多使用 512MB 内存
# --maxmemory-policy allkeys-lru : 内存满了之后,自动删除最久未使用的缓存(无论是否过期)
# --save "" : 如果你不需要持久化缓存到硬盘(重启后清空),可以把 save 设为空,减少磁盘IO
# command: redis-server --save 60 1 --maxmemory 128mb --maxmemory-policy allkeys-lru --loglevel warning
command: redis-server --maxmemory 32mb --maxmemory-policy allkeys-lru --save 300 1 --loglevel warning
environment:
TZ: Asia/Shanghai
# 配置详解:
# --maxmemory 32mb: 严格限制内存使用 32MB
# --maxmemory-policy allkeys-lru: 内存满时挤掉旧数据(安全兜底)
# --save 300 1: 每300秒(5分钟)如果至少有1个key变化,就保存快照到磁盘 (降低IO)
volumes:
# 映射数据目录,确保重启容器后,今天的计数还在
- redis_data:/data
# ---------------------------
# db:
# image: postgres:16
# restart: unless-stopped
# container_name: litellm_db
# environment:
# TZ: Asia/Shanghai
# POSTGRES_DB: litellm
# POSTGRES_USER: llmproxy
# POSTGRES_PASSWORD: dbpassword9090
# volumes:
# - postgres_data:/var/lib/postgresql/data
# healthcheck:
# test: ["CMD-SHELL", "pg_isready -d litellm -U llmproxy"]
# interval: 5s
# timeout: 5s
# retries: 10
volumes:
postgres_data:
driver: local
name: litellm_postgres_data
redis_data: # 如果开启了 redis 持久化,这里也要打开
driver: local