Files
litellm-config/docker-compose.yml
T
2026-06-15 17:13:33 +08:00

86 lines
3.1 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
# 【关键】挂载自定义脚本到容器根目录
- ./daily_limit.py:/app/daily_limit.py
- ./volc_limit_sync.py:/app/volc_limit_sync.py
- ./debug_volc_sync_manual.py:/app/debug_volc_sync_manual.py
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