# Dify 用于代理工作流程开发的生产就绪型平台。
# docker 部署运行 dify
🚀 一、快速启动(单机部署)
- 环境准备
# 安装 Docker 和 Docker Compose
sudo apt update && sudo apt install docker.io docker-compose sudo systemctl enable --now docker
# 验证版本
docker --version && docker-compose --version
- 部署 Dify
# 创建工作目录
mkdir -p ~/dify && cd ~/dify
# 下载官方配置
curl -O https://raw.githubusercontent.com/langgenius/dify/main/docker/docker-compose.yaml curl -O https://raw.githubusercontent.com/langgenius/dify/main/docker/.env.example
# 初始化配置文件
cp .env.example .env
- 启动服务 docker compose up -d
# 查看启动状态(等待所有容器状态为 healthy)
docker compose ps
访问 http://localhost 初始化管理员账号 ⏱️ 首次启动耗时:约 3-5 分钟(需下载 1.2GB 镜像)
⚙️ 二、关键配置详解
- 端口修改(.env 文件)
# 修改服务端口(默认 80)
SERVER_PORT=8080
# 修改数据库端口(避免冲突)
MYSQL_HOST_PORT=3307
- 模型集成配置
# 启用本地模型支持(如 Ollama)
CUSTOM_MODEL_ENABLED=true OLLAMA_API_BASE_URL=http://host.docker.internal:11434
- 存储持久化
# 在 docker-compose.yaml 中添加卷映射
services: db: volumes: - ./mysql_data:/var/lib/mysql # MySQL 数据 redis: volumes: - ./redis_data:/data # Redis 数据 storage: volumes: - ./storage_data:/data # 上传文件
🐳 三、生产级部署优化
- 资源限制(防止 OOM)
# docker-compose.yaml 中添加
services: api: deploy: resources: limits: memory: 4G cpus: '2.0' worker: deploy: resources: limits: memory: 2G cpus: '1.0'
- HTTPS 安全配置
# nginx-proxy 配置 (在 docker-compose.yaml 旁新建 nginx.conf)
server { listen 443 ssl; server_name dify.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/dify.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dify.yourdomain.com/privkey.pem;
location / { proxy_pass http://dify-web:80; proxy_set_header Host $host; } }
# 启动时挂载证书
volumes:
- ./certs:/etc/letsencrypt
- 高可用部署(K8s 示例)
# dify-k8s.yaml
# apiVersion: apps/v1 kind: Deployment metadata: name: dify-api spec: replicas: 3 template: spec: containers: - name: api image: langgenius/dify-api:latest envFrom: - configMapRef: name: dify-config
apiVersion: v1 kind: ConfigMap metadata: name: dify-config data: DATABASE_URL: "mysql://user:pass@mysql-service:3306/dify" REDIS_URL: "redis://redis-service:6379"
⚠️ 四、常见问题解决
- 容器启动失败
# 查看实时日志
docker compose logs -f api
# 典型错误处理
ERROR [db] Connection refused → 检查 MySQL 容器是否启动 WARN [Redis] Timeout → 增加 .env 中 REDIS_TIMEOUT=30
- 知识库索引异常
# 手动重建索引
docker compose exec api python manage.py reindex_all
- 模型连接问题
# .env 添加调试模式
DEBUG_MODE=true # 查看详细模型调用日志
🔄 五、日常维护命令 操作 命令 启动服务 docker compose up -d 停止服务 docker compose down 更新版本 docker compose pull && docker compose up -d 备份数据库 docker compose exec db mysqldump -u root -p$MYSQL_ROOT_PASSWORD dify > backup.sql 查看资源占用 docker stats 清理无用镜像 docker system prune -a
📦 六、数据备份方案
- 全量备份脚本 #!/bin/bash
# backup-dify.sh
DATE=$(date +%F)
tar -czvf dify-backup-$DATE.tar.gz
~/dify/mysql_data
~/dify/redis_data
~/dify/storage_data
~/dify/.env
- 定时任务(每日 2AM 备份)
# 添加 cron 任务
crontab -e 0 2 * * * /path/to/backup-dify.sh
💡 七、典型部署架构图 graph LR A[用户] --> B[Nginx 443] B --> C[Dify-Web Frontend] B --> D[Dify-API Backend] D --> E[(MySQL)] D --> F[(Redis)] D --> G[Worker] G --> H[向量数据库] H --> I[模型服务]
访问路径:https://your-domain.com → Nginx → Dify Web → Dify API → 数据库/模型
通过以上步骤,您可在 10 分钟内完成生产级 Dify 部署。如需集成企业微信/飞书或配置集群部署,可进一步提供针对性方案!