Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libxext6 \
&& rm -rf /var/lib/apt/lists/*

# 创建非 root 用户 (UID 1000)
RUN groupadd -g 1000 dsa && \
useradd -u 1000 -g dsa -m dsa

# 复制依赖文件
COPY requirements.txt .

Expand All @@ -50,8 +54,9 @@ COPY src/ ./src/
COPY strategies/ ./strategies/
COPY --from=web-builder /app/static ./static/

# 创建数据目录
RUN mkdir -p /app/data /app/logs /app/reports
# 确保数据目录存在并授权给 non-root 用户
RUN mkdir -p /app/data /app/logs /app/reports && \
chown -R dsa:dsa /app

# 设置环境变量默认值
ENV PYTHONUNBUFFERED=1
Expand All @@ -61,6 +66,9 @@ ENV DATABASE_PATH=/app/data/stock_analysis.db
ENV WEBUI_HOST=0.0.0.0
ENV API_PORT=8000

# 切换到 non-root 用户
USER dsa

# 暴露 API 端口
EXPOSE 8000

Expand Down
1 change: 1 addition & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).

<!-- 新条目格式:- [类型] 描述(类型取值:新功能/改进/修复/文档/测试/chore)-->
<!-- 每条独立一行追加到本段末尾,无需分类标题,合并时冲突最小 -->
- [改进] Docker 镜像支持非 root 用户 (`dsa`, UID 1000) 执行,并增强 `Dockerfile` 安全性与构建稳健性。
- [改进] 放宽 LiteLLM 依赖约束,保留 `>=1.80.10` 最低版本并显式排除 PyPI 事故版本 `1.82.7` / `1.82.8`,允许安装后续 1.x 修复版本。
- [改进] 补齐通知渠道 P0 基线、Actions 映射与 `--check-notify` 只读诊断,完善 AstrBot 配置入口和通知回归快照。
- [chore] 清理仓库根目录:移除误入库的 `.codex`、`review.md` 跟踪记录,将 smoke 测试入口迁移到 `scripts/`、环境检查脚本迁移为 `scripts/check_env.py`,并将 LiteLLM YAML 示例迁移到 `docs/examples/`。
Expand Down
9 changes: 9 additions & 0 deletions docs/DEPLOY.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,15 @@ docker-compose -f ./docker/docker-compose.yml exec stock-analyzer python main.py
- `./logs/` - 日志文件
- `./reports/` - 分析报告

### 6. 权限说明(重要)

由于 Docker 镜像以非 root 用户 (`dsa`, UID 1000) 运行,若你在宿主机挂载卷时遇到 `Permission denied` 错误,请在宿主机执行以下命令:

```bash
# 授权宿主机挂载目录
sudo chown -R 1000:1000 ./data ./logs ./reports
```

---

## 🖥️ 方案二:直接部署
Expand Down
Loading