86 lines
3.1 KiB
YAML
86 lines
3.1 KiB
YAML
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
|