Dify本地部署完整教程|基于Docker的AI应用开发平台

发布于:2025-08-20 ⋅ 阅读:(24) ⋅ 点赞:(0)


一、什么是Dify?

Dify是一个开源的LLM应用开发平台,支持通过可视化编排快速构建AI工作流。其核心优势在于:

  • 多模型支持:可同时接入GPT-4/Claude/LLaMA等模型
  • 生产就绪:内置用户管理、API访问控制等企业级功能
  • 知识库增强:支持文档上传与向量化检索

二、核心功能特性

  • 🧩 可视化编排:拖拽式构建AI工作流
  • 📚 知识库增强:支持上传PDF/Word等文档构建专属知识库
  • 🔌 多模型支持:同时接入OpenAI/Anthropic等商业API及本地私有模型
  • 🚀 一键发布:将AI应用快速发布为API或Web应用

三、部署前提条件

必须准备

  1. 已安装Docker和Docker-Compose(参考Docker安装指南
  2. 4核CPU+8GB内存(实测最低配置)
  3. 20GB可用磁盘空间(向量库需额外空间)

💡 推荐环境

  • Linux内核5.4+(Ubuntu 20.04+/CentOS 8+)
  • NVIDIA驱动(如需GPU加速)

🔧 可选准备

  • 域名+SSL证书(用于生产环境)
  • OpenAI API Key(若使用商业模型)
  • GPU支持(如需本地运行大模型)

四、Docker部署步骤

1. 获取官方源码

git clone https://github.com/langgenius/dify.git --depth=1	# --depth=1:浅克隆,仅克隆仓库的最新一次提交(即 HEAD),不包含完整的历史记录。这会显著减少下载的数据量和时间。
cd dify/docker  # 所有部署文件均在此目录

2. 初始化配置文件

cp .env.example .env          # 主配置文件
cp middleware.env.example middleware.env  # 中间件使用,根据实际需要进行修改(非必须)

3. 启动服务(开发模式)

docker-compose up -d  # 启动后会自动拉取镜像并创建网络

执行成功界面

此时会启动以下容器:

  • dify-api(后端服务,端口=80)
  • postgres(数据库)
  • redis(缓存)
  • weaviate(向量数据库)

4. 生产环境调优

修改.env文件关键参数:

# 必改项
APP_API_HOST=yourdomain.com  # 生产域名
STORAGE_TYPE=s3              # 推荐使用对象存储

# 可选项
TZ=Asia/Shanghai            # 时区设置
LOG_LEVEL=warning           # 生产环境日志级别

五、配置初始化

1. 检查服务状态:

docker-compose ps  # 所有服务应为"running"

服务启动状态列表

2. 管理员账号设置

  1. 访问 http://localhost 或您的域名
  2. 首次进入会跳转到初始化页面
  3. 设置管理员邮箱和密码(建议使用强密码)
    设置管理员账户
    登录以后进入主页面(表明项目已成功启动):
    在这里插入图片描述

3. 模型API配置

进入「系统设置」→「模型提供商」:

  • OpenAI:填写API Key和Base URL
  • 本地模型:输入模型服务地址(如LocalAI)
  • 多模型切换:设置默认使用的模型

4. 存储设置

# docker-compose.yaml 片段
services:
  app:
    environment:
      - STORAGE_TYPE=local # 或s3
      - S3_ENDPOINT=minio:9000
      - S3_BUCKET_NAME=dify

六、常见问题

❌ 端口冲突处理

修改映射端口(以改为8080为例):

docker run -p 8080:80 ...
# 或修改docker-compose.yml的ports配置

🚨 容器启动失败

检查日志定位问题:

docker logs dify --tail 100
# 常见原因:存储目录权限问题
sudo chown -R 1000:1000 /data/dify/storage

🔌 模型连接异常

  • 检查网络连通性:
docker exec -it dify ping api.openai.com
  • 测试API Key有效性:
curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer YOUR_KEY"

七、学习资源

遇到问题?请在评论区留言,我会第一时间解答!如果觉得有用,请点赞收藏支持~