fix: docker volume missing setting.toml

This commit is contained in:
Chenyme committed 2025-11-20 14:07:34 +08:00
1 parent 7191a59097
commit 0c6c36f999
2 files changed
+46 -2

No files matched your search

-1
View File
@@ -38,7 +38,6 @@ RUN mkdir -p /app/logs /app/data/temp/image /app/data/temp/video && \
# 复制应用代码
COPY app/ ./app/
COPY main.py .
COPY data/setting.toml ./data/
# 删除 Python 字节码和缓存
ENV PYTHONDONTWRITEBYTECODE=1 \
+46 -1
View File
@@ -11,11 +11,56 @@ class ConfigManager:
def __init__(self) -> None:
"""初始化"""
# 加载环境变量
# 配置文件路径
self.config_path: Path = Path(__file__).parents[2] / "data" / "setting.toml"
# 确保配置文件存在(首次启动时创建默认配置)
self._ensure_config_exists()
# 加载配置
self.global_config: Dict[str, Any] = self.load("global")
self.grok_config: Dict[str, Any] = self.load("grok")
self._storage = None
def _ensure_config_exists(self) -> None:
"""确保配置文件存在,如果不存在则创建默认配置"""
if not self.config_path.exists():
# 创建 data 目录
self.config_path.parent.mkdir(parents=True, exist_ok=True)
# 创建默认配置文件
self._create_default_config()
def _create_default_config(self) -> None:
"""创建默认配置文件"""
default_config = {
"grok": {
"api_key": "",
"proxy_url": "",
"cache_proxy_url": "",
"cf_clearance": "",
"x_statsig_id": "",
"dynamic_statsig": True,
"filtered_tags": "xaiartifact,xai:tool_usage_card,grok:render",
"stream_chunk_timeout": 120,
"stream_total_timeout": 600,
"stream_first_response_timeout": 30,
"temporary": True,
"show_thinking": False
},
"global": {
"base_url": "http://localhost:8000",
"log_level": "INFO",
"image_mode": "url",
"admin_password": "admin",
"admin_username": "admin",
"image_cache_max_size_mb": 512,
"video_cache_max_size_mb": 1024
}
}
with open(self.config_path, "w", encoding="utf-8") as f:
toml.dump(default_config, f)
def set_storage(self, storage) -> None:
"""设置存储实例"""