File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -34,6 +34,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
3434 libxext6 \
3535 && rm -rf /var/lib/apt/lists/*
3636
37+ # 创建非 root 用户 (UID 1000)
38+ RUN groupadd -g 1000 dsa && \
39+ useradd -u 1000 -g dsa -m dsa
40+
3741# 复制依赖文件
3842COPY requirements.txt .
3943
@@ -50,8 +54,9 @@ COPY src/ ./src/
5054COPY strategies/ ./strategies/
5155COPY --from=web-builder /app/static ./static/
5256
53- # 创建数据目录
54- RUN mkdir -p /app/data /app/logs /app/reports
57+ # 确保数据目录存在并授权给 non-root 用户
58+ RUN mkdir -p /app/data /app/logs /app/reports && \
59+ chown -R dsa:dsa /app
5560
5661# 设置环境变量默认值
5762ENV PYTHONUNBUFFERED=1
@@ -61,6 +66,9 @@ ENV DATABASE_PATH=/app/data/stock_analysis.db
6166ENV WEBUI_HOST=0.0.0.0
6267ENV API_PORT=8000
6368
69+ # 切换到 non-root 用户
70+ USER dsa
71+
6472# 暴露 API 端口
6573EXPOSE 8000
6674
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
1111
1212<!-- 新条目格式:- [类型] 描述(类型取值:新功能/改进/修复/文档/测试/chore)-->
1313<!-- 每条独立一行追加到本段末尾,无需分类标题,合并时冲突最小 -->
14+ - [ 改进] Docker 镜像支持非 root 用户 (` dsa ` , UID 1000) 执行,并增强 ` Dockerfile ` 安全性与构建稳健性。
1415- [ 改进] 放宽 LiteLLM 依赖约束,保留 ` >=1.80.10 ` 最低版本并显式排除 PyPI 事故版本 ` 1.82.7 ` / ` 1.82.8 ` ,允许安装后续 1.x 修复版本。
1516- [ 改进] 补齐通知渠道 P0 基线、Actions 映射与 ` --check-notify ` 只读诊断,完善 AstrBot 配置入口和通知回归快照。
1617- [ chore] 清理仓库根目录:移除误入库的 ` .codex ` 、` review.md ` 跟踪记录,将 smoke 测试入口迁移到 ` scripts/ ` 、环境检查脚本迁移为 ` scripts/check_env.py ` ,并将 LiteLLM YAML 示例迁移到 ` docs/examples/ ` 。
Original file line number Diff line number Diff line change @@ -87,6 +87,15 @@ docker-compose -f ./docker/docker-compose.yml exec stock-analyzer python main.py
8787- ` ./logs/ ` - 日志文件
8888- ` ./reports/ ` - 分析报告
8989
90+ ### 6. 权限说明(重要)
91+
92+ 由于 Docker 镜像以非 root 用户 (` dsa ` , UID 1000) 运行,若你在宿主机挂载卷时遇到 ` Permission denied ` 错误,请在宿主机执行以下命令:
93+
94+ ``` bash
95+ # 授权宿主机挂载目录
96+ sudo chown -R 1000:1000 ./data ./logs ./reports
97+ ```
98+
9099---
91100
92101## 🖥️ 方案二:直接部署
You can’t perform that action at this time.
0 commit comments