mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-22 16:43:35 +00:00
refactor: 简化Docker部署,使用环境变量替代.env文件映射
- 移除 docker-compose.yml 中的 .env 文件映射 - 添加所有必要的环境变量到 docker-compose.yml - 简化 docker-entrypoint.sh,直接使用环境变量 - 更新 README,说明通过环境变量配置的方式 - 删除不再需要的初始化脚本 - 解决了 sed -i 在某些 Docker 环境下的 'Resource busy' 错误
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
version: '3.8'
|
||||
|
||||
# ⚠️ 重要提示:首次运行前必须执行以下命令
|
||||
# touch .env
|
||||
#
|
||||
# 说明:如果不先创建 .env 文件,Docker 会将其创建为目录而非文件,
|
||||
# 导致容器无法正常启动。该文件用于存储加密密钥,必须持久化。
|
||||
# Claude Relay Service Docker Compose 配置
|
||||
# 所有配置通过环境变量设置,无需映射 .env 文件
|
||||
|
||||
services:
|
||||
# 🚀 Claude Relay Service
|
||||
@@ -15,16 +12,64 @@ services:
|
||||
ports:
|
||||
- "${PORT:-3000}:3000"
|
||||
environment:
|
||||
# 🌐 服务器配置
|
||||
- NODE_ENV=production
|
||||
- PORT=3000
|
||||
- HOST=0.0.0.0
|
||||
|
||||
# 🔐 安全配置(必填)
|
||||
- JWT_SECRET=${JWT_SECRET} # 必填:至少32字符的随机字符串
|
||||
- ENCRYPTION_KEY=${ENCRYPTION_KEY} # 必填:32字符的加密密钥
|
||||
- ADMIN_SESSION_TIMEOUT=${ADMIN_SESSION_TIMEOUT:-86400000}
|
||||
- API_KEY_PREFIX=${API_KEY_PREFIX:-cr_}
|
||||
|
||||
# 👤 管理员凭据(可选)
|
||||
- ADMIN_USERNAME=${ADMIN_USERNAME:-}
|
||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
|
||||
|
||||
# 📊 Redis 配置
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_PORT=6379
|
||||
- ADMIN_USERNAME=${ADMIN_USERNAME:-} # 可选:预设管理员用户名
|
||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-} # 可选:预设管理员密码
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
||||
- REDIS_DB=${REDIS_DB:-0}
|
||||
- REDIS_ENABLE_TLS=${REDIS_ENABLE_TLS:-}
|
||||
|
||||
# 🎯 Claude API 配置
|
||||
- CLAUDE_API_URL=${CLAUDE_API_URL:-https://api.anthropic.com/v1/messages}
|
||||
- CLAUDE_API_VERSION=${CLAUDE_API_VERSION:-2023-06-01}
|
||||
- CLAUDE_BETA_HEADER=${CLAUDE_BETA_HEADER:-claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14}
|
||||
|
||||
# 🌐 代理配置
|
||||
- DEFAULT_PROXY_TIMEOUT=${DEFAULT_PROXY_TIMEOUT:-60000}
|
||||
- MAX_PROXY_RETRIES=${MAX_PROXY_RETRIES:-3}
|
||||
|
||||
# 📈 使用限制
|
||||
- DEFAULT_TOKEN_LIMIT=${DEFAULT_TOKEN_LIMIT:-1000000}
|
||||
|
||||
# 📝 日志配置
|
||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
- LOG_MAX_SIZE=${LOG_MAX_SIZE:-10m}
|
||||
- LOG_MAX_FILES=${LOG_MAX_FILES:-5}
|
||||
|
||||
# 🔧 系统配置
|
||||
- CLEANUP_INTERVAL=${CLEANUP_INTERVAL:-3600000}
|
||||
- TOKEN_USAGE_RETENTION=${TOKEN_USAGE_RETENTION:-2592000000}
|
||||
- HEALTH_CHECK_INTERVAL=${HEALTH_CHECK_INTERVAL:-60000}
|
||||
- SYSTEM_TIMEZONE=${SYSTEM_TIMEZONE:-Asia/Shanghai}
|
||||
- TIMEZONE_OFFSET=${TIMEZONE_OFFSET:-8}
|
||||
|
||||
# 🎨 Web 界面配置
|
||||
- WEB_TITLE=${WEB_TITLE:-Claude Relay Service}
|
||||
- WEB_DESCRIPTION=${WEB_DESCRIPTION:-Multi-account Claude API relay service}
|
||||
- WEB_LOGO_URL=${WEB_LOGO_URL:-/assets/logo.png}
|
||||
|
||||
# 🛠️ 开发配置
|
||||
- DEBUG=${DEBUG:-false}
|
||||
- ENABLE_CORS=${ENABLE_CORS:-true}
|
||||
- TRUST_PROXY=${TRUST_PROXY:-true}
|
||||
volumes:
|
||||
- ./logs:/app/logs
|
||||
- ./data:/app/data
|
||||
- ./.env:/app/.env # 必须映射,用于持久化加密密钥
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
|
||||
Reference in New Issue
Block a user