当前位置: 首页 > news >正文

开源 LLM 应用开发平台 Dify 全栈部署指南(Docker Compose 方案)

开源 LLM 应用开发平台 Dify 全栈部署指南(Docker Compose 方案)

一、部署环境要求与前置检查

1.1 硬件最低配置

组件要求
CPU双核及以上
内存4GB 及以上
磁盘空间20GB 可用空间

1.2 系统兼容性验证

  • ✅ 官方支持系统:
    • Ubuntu 20.04/22.04 LTS
    • Debian 11/12
  • ❗ 注意事项:
    • 推荐使用纯净系统环境
    • 避免与其他占用 80/443 端口的服务冲突

1.3 安装验证

部署成功查看:

在这里插入图片描述

浏览器访问:

在这里插入图片描述

二、容器化部署全流程

2.1 容器运行时安装

Docker 引擎部署
# 卸载旧版本(全新安装可跳过)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖工具集
sudo apt-get update && sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 添加官方 GPG 密钥
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置稳定版仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker CE
sudo apt-get update && sudo apt-get install -y \
    docker-ce \
    docker-ce-cli \
    containerd.io \
    docker-buildx-plugin \
    docker-compose-plugin
Docker Compose 安装
# 获取最新稳定版(示例版本号可替换)
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose

# 权限配置
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

2.2 部署架构解析

Dify 的 Docker 部署包含以下核心组件:

Web 前端
API 服务
PostgreSQL
Redis
模型服务

2.3 服务部署实战

步骤 1:获取部署清单
git clone -b main https://github.com/langgenius/dify.git && cd dify/docker

# 用户推荐使用镜像源:需要gitee账号
# git clone https://gitee.com/langgenius/dify.git
步骤 2:环境配置
cp .env.example .env

# 关键配置项建议修改
sed -i 's/HTTP_PORT=80/HTTP_PORT=5080/g' .env      # 避免端口冲突
sed -i 's/SUPERADMIN_EMAIL=.*/SUPERADMIN_EMAIL=admin@yourdomain.com/g' .env
步骤 3:配置镜像源
 #配置镜像加速源
 sudo nano /etc/docker/daemon.json

    "https://docker.1ms.run",
    "https://hub.rat.dev",
    "https://docker.1panel.live",
    "https://hub.rat.dev",
    "https://proxy.1panel.live",
    "https://ghcr.nju.edu.cn",
    "https://docker.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.rainbond.cc",
    "https://registry.cn-shenzhen.aliyuncs.com",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://mirror.baidubce.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.nju.edu.cn",
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.jsdelivr.fyi",
    "https://docker-cf.registry.cyou"
    
    
    sudo systemctl daemon-reload
    sudo systemctl restart docker
步骤 4:启动服务集群
# 首次启动建议观察日志:下载速度可能比较慢
docker-compose up -d --build && docker-compose logs -f --tail=100

三、部署验证与初始化

3.1 服务状态检查

# 预期输出示例
docker-compose ps

root@wh-VMware-Virtual-Platform:~/dify/docker# docker-compose ps
NAME                     IMAGE                                       COMMAND                  SERVICE             CREATED             STATUS                    PORTS
docker-api-1             langgenius/dify-api:1.1.3                   "/bin/bash /entrypoi…"   api                 21 minutes ago      Up 21 minutes             5001/tcp
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db                  21 minutes ago      Up 21 minutes (healthy)   5432/tcp
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx               21 minutes ago      Up 21 minutes    

3.2 初始化管理员账户

  1. 访问 http://<your-server-ip>:80
  2. 按提示填写:
    • 组织名称
    • 管理员邮箱
    • 密码(复杂度要求:至少8位含大小写字母和数字)

四、高阶配置指南

4.1 反向代理配置(可选)

#以上是全量安装已配置好nginx,可无需配置
server {
    listen 80;
    server_name dify.yourdomain.com;
    
    location / {
        proxy_pass http://localhost:5080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
        # WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

4.2 数据持久化配置(可选)

默认数据存储路径:

  • PostgreSQL:/var/lib/docker/volumes/dify_pg-data/_data
  • Redis:/var/lib/docker/volumes/dify_redis-data/_data

建议绑定到自定义目录:

# 修改 docker-compose.yml
services:
  postgres:
    volumes:
      - /data/dify/postgres:/var/lib/postgresql/data
  redis:
    volumes:
      - /data/dify/redis:/data

五、故障排查手册

5.1 常见问题处理

问题 1:容器启动失败

✅ 排查步骤:

  1. 查看日志:docker-compose logs <service-name>
  2. 检查端口冲突:ss -tulnp | grep ':80'
  3. 验证依赖服务:确保 PostgreSQL/Redis 正常启动
问题 2:无法访问安装页面

✅ 解决方案:

  1. 检查防火墙设置:
    sudo ufw allow 5080/tcp
    
  2. 验证服务绑定地址:
    docker exec dify-web netstat -ant | grep 3000
    

六、维护与升级

6.1 服务更新流程

# 拉取最新代码
git pull origin main

# 重建服务
docker-compose down && docker-compose up -d --build

6.2 数据备份方案

# PostgreSQL 备份
docker exec dify-db pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql

# Redis 备份
docker exec dify-redis redis-cli save
cp /data/dify/redis/dump.rdp ./redis_backup_$(date +%Y%m%d).rdb

技术总结

本文详细阐述了 Dify 开源平台的容器化部署方案,具有以下技术亮点:

  1. 全栈隔离部署:通过 Docker Compose 实现服务组件隔离,确保环境一致性
  2. 生产级配置:包含反向代理、数据持久化等企业级部署方案
  3. 可观测性增强:提供完整的日志查看与状态监控命令
  4. 大陆优化方案:针对国内用户提供镜像加速配置建议

建议将本文所述方案部署于测试环境验证后,再迁移至生产环境。更多高级配置请参考 Dify 官方文档。

如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!

http://www.dtcms.com/a/112856.html

相关文章:

  • SpringWebFlux路由函数:RouterFunction与HandlerFunction
  • 简单多状态dp问题 + 总结(一)
  • 【新能源汽车研发测试数据深度分析:从传感器到智能决策的硬核方法论】
  • 照片to谷歌地球/奥维地图 - 批量导出GPS数据到CSV文件
  • (小白0基础) 租用AutoDL服务器进行deepseek-8b模型微调全流程(Xshell,XFTP) —— 准备篇
  • 2025.4.4总结
  • THE UNIVERSITY OF MANCHESTER-NUMERICAL ANALYSIS 1-4.1数值代数方程组求解
  • 【Android】UI开发:XML布局与Jetpack Compose的全面对比指南
  • 什么是边缘计算?
  • 使用Visual Studio
  • 36、web前端开发之JavaScript(五)
  • 如何部署DeepSeek企业知识库:
  • 单片机学习笔记8.定时器
  • 针对Ansible执行脚本时报错“可执行文件格式错误”,以下是详细的解决步骤和示例
  • Java异常处理与全局异常处理全面指南
  • 3-Visual Studio 2022打包NET开发项目为安装包
  • 手部穴位检测技术:基于OpenCV和MediaPipe的实现
  • C++/Qt 模拟sensornetwork的工作
  • 定积分的应用(4.39-4.48)
  • 【Game】Powerful——Riding Animals(5)
  • 【Scrapy】Scrapy教程10——CSS选择器详解
  • 第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
  • SQL BETWEEN 语句详解
  • 【寻找Linux的奥秘】第三章:基础开发工具(上)
  • FPGA入门学习Day0——状态机相关内容解析HDLbits练习
  • 爬虫自动化工具:DrissionPage
  • VLAN详解
  • #SVA语法滴水穿石# (000)断言基本概念和背景
  • 第1课:React开发环境搭建与第一个组件
  • 设计模式简述(二)单例模式