# 🐳 Docker 部署快速指南

本文档是Docker部署的快速参考指南。完整文档请查看 [DOCKER_DEPLOYMENT.md](DOCKER_DEPLOYMENT.md)。

## 🎯 为什么选择Docker部署？

- ✅ **零环境配置**：无需安装Python、Node.js等环境
- ✅ **一键启动**：简单命令即可运行
- ✅ **环境隔离**：不影响系统其他软件
- ✅ **跨平台**：Windows/macOS/Linux统一部署方式
- ✅ **稳定可靠**：容器自动重启，故障自动恢复

## ⚡ 5分钟快速开始

### 1️⃣ 安装Docker

**Windows/macOS:**
- 下载 [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- 双击安装，启动Docker Desktop

**Linux:**
```bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```

### 2️⃣ 配置环境变量

```bash
# 复制配置模板
cp .env.template .env

# 编辑 .env 文件，填入你的 DeepSeek API Key
# DEEPSEEK_API_KEY=sk-your-actual-api-key-here
```

### 3️⃣ 启动服务

```bash
# 一键启动
docker-compose up -d

# 查看日志（可选）
docker-compose logs -f
```

### 4️⃣ 访问系统

打开浏览器访问：**http://localhost:8503**

## 🎮 常用命令

```bash
# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 重启服务
docker-compose restart

# 查看日志
docker-compose logs -f

# 查看运行状态
docker ps

# 进入容器（调试用）
docker exec -it agentsstock1 bash
```

## 📁 项目结构

```
agentsstock1/
├── Dockerfile              # Docker镜像构建文件
├── docker-compose.yml      # Docker编排配置
├── .dockerignore          # Docker构建忽略文件
├── .env.template          # 环境变量模板
├── .env                   # 环境变量配置（需自己创建）
├── DOCKER_DEPLOYMENT.md   # 详细部署文档
├── DOCKER_CHECKLIST.md    # 部署检查清单
└── README.md              # 项目主文档
```

## 🔑 关键特性

### Node.js 环境集成
Docker镜像已内置Node.js 18.x环境，支持pywencai等需要Node.js的Python包。

### 数据持久化
以下数据会自动保存到宿主机：
- `stock_analysis.db` - 分析历史数据库
- `stock_monitor.db` - 监测数据库
- `data/` - 临时数据目录

即使删除容器，数据也不会丢失。

### 健康检查
容器会自动监控应用健康状态，异常时自动重启。

## 🐛 快速故障排除

### 问题1: 容器启动失败
```bash
# 查看详细日志
docker-compose logs

# 检查 .env 文件是否存在并配置正确
cat .env
```

### 问题2: 无法访问网页
```bash
# 检查容器是否运行
docker ps

# 检查端口映射
docker port agentsstock1

# 尝试从容器内访问
docker exec agentsstock1 curl http://localhost:8501
```

### 问题3: 端口被占用
修改 `docker-compose.yml` 文件：
```yaml
ports:
  - "8502:8501"  # 改用8502端口
```

### 问题4: 数据库权限错误（Linux/macOS）
```bash
chmod 666 *.db
chmod 777 data/
```

## 🔄 更新和维护

### 更新代码
```bash
# 停止服务
docker-compose down

# 拉取最新代码
git pull

# 重新构建并启动
docker-compose up -d --build
```

### 清理和重置
```bash
# 完全清理（包括volumes）
docker-compose down -v

# 删除镜像
docker rmi agentsstock1:latest

# 重新构建
docker-compose build --no-cache
docker-compose up -d
```

### 备份数据
```bash
# 备份数据库文件
cp stock_analysis.db stock_analysis.db.backup
cp stock_monitor.db stock_monitor.db.backup
```

## 📊 性能监控

```bash
# 查看资源使用
docker stats agentsstock1

# 查看容器详情
docker inspect agentsstock1

# 查看日志大小
docker logs agentsstock1 2>&1 | wc -l
```

## 🔒 安全建议

1. **保护.env文件**
   ```bash
   # Linux/macOS - 设置文件权限
   chmod 600 .env
   ```

2. **不要提交敏感信息**
   - `.env` 文件已在 `.gitignore` 中
   - 不要将API Key提交到版本控制

3. **定期更新**
   ```bash
   # 更新Docker镜像
   docker-compose pull
   docker-compose up -d
   ```

## 🌐 生产环境部署

对于生产环境，建议：

1. 使用反向代理（Nginx/Caddy）
2. 配置HTTPS证书
3. 设置防火墙规则
4. 配置日志轮转
5. 定期备份数据库
6. 监控容器状态

示例Nginx配置：
```nginx
server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:8501;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
}
```

## 📚 更多资源

- **完整部署文档**: [DOCKER_DEPLOYMENT.md](DOCKER_DEPLOYMENT.md)
- **部署检查清单**: [DOCKER_CHECKLIST.md](DOCKER_CHECKLIST.md)
- **项目主文档**: [README.md](README.md)
- **Docker官方文档**: https://docs.docker.com/

## 🆘 获取帮助

遇到问题？

1. 查看日志：`docker-compose logs -f`
2. 查看完整文档：[DOCKER_DEPLOYMENT.md](DOCKER_DEPLOYMENT.md)
3. 检查部署清单：[DOCKER_CHECKLIST.md](DOCKER_CHECKLIST.md)
4. 联系支持：ws3101001@126.com

---

**Docker让部署更简单！祝您使用愉快！** 🚀🐳

