# AI Chat Docker 部署指南

## 📦 文件说明

- `Dockerfile` - Docker镜像构建文件
- `docker-compose.yml` - Docker Compose配置文件
- `nginx.conf` - Nginx服务器配置
- `proxy.conf` - 反向代理配置（可选）
- `.dockerignore` - Docker构建忽略文件

## 🚀 快速启动

### 1. 基础部署（推荐）

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

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f web
```

访问地址：http://localhost:3000

### 2. 使用反向代理

```bash
# 启动包含反向代理的完整服务
docker-compose --profile proxy up -d
```

访问地址：http://localhost

### 3. 手动构建镜像

```bash
# 构建镜像
docker build -t ai-chat:latest .

# 运行容器
docker run -d -p 3000:80 --name ai-chat-container ai-chat:latest
```

## 🔧 配置说明

### 端口配置
- 默认端口：3000 (可在docker-compose.yml中修改)
- 反向代理端口：80/443

### 环境变量
- `TZ=Asia/Shanghai` - 时区设置

### 数据卷
- `./logs:/var/log/nginx` - Nginx日志持久化

## 📝 常用命令

```bash
# 停止服务
docker-compose down

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

# 查看容器状态
docker-compose ps

# 进入容器
docker-compose exec web sh

# 查看实时日志
docker-compose logs -f

# 清理未使用的镜像
docker image prune -f
```

## 🔒 生产环境配置

### 1. HTTPS配置
1. 将SSL证书放入 `./ssl/` 目录
2. 取消注释 `proxy.conf` 中的HTTPS配置
3. 重启服务

### 2. 性能优化
- 启用gzip压缩 ✅
- 静态资源缓存 ✅
- 安全头设置 ✅

### 3. 监控和日志
```bash
# 查看资源使用情况
docker stats ai-chat-web

# 查看详细信息
docker inspect ai-chat-web
```

## 🐛 故障排除

### 常见问题

1. **端口被占用**
   ```bash
   # 修改docker-compose.yml中的端口映射
   ports:
     - "8080:80"  # 改为其他端口
   ```

2. **权限问题**
   ```bash
   # 确保dist目录有正确权限
   chmod -R 755 dist/
   ```

3. **容器无法启动**
   ```bash
   # 查看详细错误信息
   docker-compose logs web
   ```

## 📊 监控指标

- 容器状态：`docker-compose ps`
- 资源使用：`docker stats`
- 访问日志：`./logs/access.log`
- 错误日志：`./logs/error.log`

## 🔄 更新部署

```bash
# 1. 重新构建应用
npm run build

# 2. 重新构建Docker镜像
docker-compose build

# 3. 重启服务
docker-compose up -d
```
