feat(M1): Docker部署配置 - docker-compose、环境变量模板、.gitignore、部署文档

This commit is contained in:
xieke
2026-06-06 06:25:50 +08:00
commit 7de45e61bd
6 changed files with 637 additions and 0 deletions
+147
View File
@@ -0,0 +1,147 @@
# Dify 部署指南
> 西安云美电子科技有限公司 - 企业知识库
## 前置要求
| 项目 | 最低要求 | 推荐配置 |
|------|---------|---------|
| CPU | 4 核 | 8 核+ |
| 内存 | 8 GB | 16 GB+ |
| 磁盘 | 50 GB SSD | 100 GB+ SSD |
| Docker | ≥ 20.10 | 最新稳定版 |
| Docker Compose | ≥ 2.0 | 最新稳定版 |
| 操作系统 | Ubuntu 20.04+ | Ubuntu 22.04 LTS |
## 快速部署
### 1. 克隆项目
```bash
git clone http://git.xayunmei.com/yunmei/dify-app.git
cd dify-app
git checkout feature/dev
```
### 2. 配置环境变量
```bash
cd docker
cp .env.example .env
# 必须修改以下配置:
# - SECRET_KEY(安全密钥,用 openssl rand -hex 32 生成)
# - POSTGRES_PASSWORD(数据库密码)
# - REDIS_PASSWORD(Redis 密码)
# - DEEPSEEK_API_KEY(DeepSeek API 密钥)
```
### 3. 配置 Nginx(可选)
如果使用自定义域名,编辑 `nginx/nginx.conf`:
```bash
mkdir -p nginx
# 将 SSL 证书放入 nginx/ssl/ 目录
```
### 4. 启动服务
```bash
# 拉取镜像
docker compose pull
# 后台启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f
```
### 5. 初始化
启动完成后,打开浏览器访问:
```
http://<服务器IP>:80
```
首次访问会要求设置管理员账号和密码。
## 服务端口说明
| 服务 | 容器端口 | 映射端口 | 说明 |
|------|---------|---------|------|
| Nginx | 80/443 | 80/443 | 主入口 |
| Dify API | 5001 | 内部 | API 服务 |
| Dify Web | 3000 | 内部 | 前端 |
| PostgreSQL | 5432 | 内部 | 数据库 |
| Redis | 6379 | 内部 | 缓存 |
| Qdrant | 6333 | 6333 | 向量数据库 |
## 常用命令
```bash
# 停止所有服务
docker compose down
# 停止并清除数据卷(危险!)
docker compose down -v
# 重启单个服务
docker compose restart api
docker compose restart worker
# 查看单个服务日志
docker compose logs -f api
docker compose logs -f worker
# 更新镜像
docker compose pull
docker compose up -d
```
## 备份与恢复
### 数据库备份
```bash
docker compose exec db pg_dump -U postgres dify > backup_$(date +%Y%m%d).sql
```
### 数据库恢复
```bash
docker compose exec -T db psql -U postgres dify < backup_20260606.sql
```
### 数据卷备份
```bash
docker run --rm -v dify-app_api_storage:/data -v $(pwd):/backup alpine tar czf /backup/api_storage_$(date +%Y%m%d).tar.gz -C /data .
```
## 故障排查
| 问题 | 排查方法 |
|------|---------|
| 服务启动失败 | `docker compose logs <service>` |
| 数据库连接失败 | 检查 `.env` 中密码是否一致 |
| 知识库索引失败 | 检查 Worker 日志,确认 Celery 队列正常 |
| 模型调用失败 | 检查 DeepSeek API Key 是否有效 |
| 端口冲突 | 修改 `.env` 中对应端口号 |
## 安全注意事项
1. **SECRET_KEY 必须使用随机值**,不要使用默认值
2. **生产环境关闭 Qdrant 外部端口**(注释掉 ports 映射)
3. **定期更换数据库密码**
4. **配置 Nginx SSL 证书**,不要在公网裸跑 HTTP
5. **.env 文件不要提交到 Git**
---
_最后更新: 2026-06-06_