148 lines
2.5 KiB
Markdown
148 lines
2.5 KiB
Markdown
# Docker 部署指南
|
||
|
||
## 快速启动
|
||
|
||
### 方式一:使用 Docker Compose (推荐)
|
||
|
||
1. **配置环境变量**
|
||
```bash
|
||
# 复制环境变量文件
|
||
cp .env.example .env
|
||
|
||
# 编辑 .env 文件,填入你的 DashScope API Key
|
||
DASHSCOPE_API_KEY=your_api_key_here
|
||
```
|
||
|
||
2. **启动服务**
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
3. **查看日志**
|
||
```bash
|
||
docker-compose logs -f
|
||
```
|
||
|
||
4. **访问应用**
|
||
- API 文档:http://localhost:8080/docs
|
||
- 前端界面:http://localhost:8080/static/index.html
|
||
|
||
5. **停止服务**
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
### 方式二:使用 Docker 构建
|
||
|
||
1. **构建镜像**
|
||
```bash
|
||
docker build -t sdlc-agent-demo:latest .
|
||
```
|
||
|
||
2. **运行容器**
|
||
```bash
|
||
docker run -d \
|
||
-p 8080:8080 \
|
||
-e DASHSCOPE_API_KEY=your_api_key_here \
|
||
-v $(pwd)/logs:/app/logs \
|
||
--name sdlc-agent \
|
||
sdlc-agent-demo:latest
|
||
```
|
||
|
||
3. **查看日志**
|
||
```bash
|
||
docker logs -f sdlc-agent
|
||
```
|
||
|
||
4. **停止并删除容器**
|
||
```bash
|
||
docker stop sdlc-agent && docker rm sdlc-agent
|
||
```
|
||
|
||
## 环境变量
|
||
|
||
| 变量名 | 说明 | 默认值 | 必需 |
|
||
|--------|------|--------|------|
|
||
| `DASHSCOPE_API_KEY` | 阿里云 DashScope API Key | 无 | ✅ |
|
||
| `PYTHONUNBUFFERED` | Python 输出缓冲设置 | 1 | ❌ |
|
||
|
||
## 端口说明
|
||
|
||
| 端口 | 说明 |
|
||
|------|------|
|
||
| 8080 | HTTP 服务端口 |
|
||
|
||
## 数据卷
|
||
|
||
| 路径 | 说明 |
|
||
|------|------|
|
||
| `./logs` | 日志文件存储目录 |
|
||
|
||
## 常见问题
|
||
|
||
### 1. 构建失败
|
||
|
||
如果遇到依赖安装失败,尝试使用国内镜像:
|
||
|
||
```dockerfile
|
||
# 在 Dockerfile 开头添加
|
||
FROM registry.cn-hangzhou.aliyuncs.com/library/python:3.11-slim
|
||
```
|
||
|
||
### 2. API Key 配置
|
||
|
||
确保在 `.env` 文件中正确配置了 DashScope API Key:
|
||
|
||
```bash
|
||
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
|
||
```
|
||
|
||
### 3. 网络问题
|
||
|
||
如果容器无法访问外网,检查 Docker 网络配置:
|
||
|
||
```bash
|
||
docker network inspect sdlc-network
|
||
```
|
||
|
||
## 生产环境建议
|
||
|
||
1. **使用 secrets 管理敏感信息**
|
||
```yaml
|
||
secrets:
|
||
dashscope_api_key:
|
||
external: true
|
||
|
||
services:
|
||
sdlc-agent:
|
||
secrets:
|
||
- dashscope_api_key
|
||
```
|
||
|
||
2. **添加资源限制**
|
||
```yaml
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
cpus: '2'
|
||
memory: 2G
|
||
```
|
||
|
||
3. **配置日志轮转**
|
||
```yaml
|
||
logging:
|
||
driver: "json-file"
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
```
|
||
|
||
4. **使用持久化存储**
|
||
```yaml
|
||
volumes:
|
||
- sdlc-data:/app/logs
|
||
|
||
volumes:
|
||
sdlc-data:
|
||
```
|