最后一版
This commit is contained in:
147
DOCKER.md
Normal file
147
DOCKER.md
Normal file
@@ -0,0 +1,147 @@
|
||||
# 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:
|
||||
```
|
||||
Reference in New Issue
Block a user