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

Dify 本地化部署教程(含常见问题与解决方案)

使用 Docker 在本地部署 Dify,并解决部署过程中遇到的典型问题,如插件下载失败、容器无法联网等。

Dify搭建

Docker Desktop安装与配置

  1. 下载安装Docker Desktop
    下载地址:https://docs.docker.com/get-started/get-docker/
    点击get docker 下拉到绿色框部分-按照你自己对应的电脑型号下载
    在这里插入图片描述
  2. 下载完成后双击“Docker Desktop Installer.exe”安装Docker Desktop
  3. 安装过程遇到错误说wsl没有点击提示链接下载安装wsl
  4. 验证docker安装,打开cmd输入:docker --version查看docker版本。
  5. 双击运行docker -点击右上角设置,如下图所示。设置Docker下载image的镜像源:添加如下设置,不要直接复制,添加缺少部分。
    在这里插入图片描述
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.rainbond.cc","https://docker.lmirror.top"]
}
  1. 在Docker Desktop中设置Docker下载image后存放的位置,默认为“C:\Users${user}\AppData\Local\Docker\wsl”路径,后续Dify将使用大于10G的空间存储images,可以修改到空间大的盘中。在这里插入图片描述
  2. 设置完成后可以通过cmd命令“docker info”查看镜像地址是否生效:
    在这里插入图片描述

Dify部署与访问

基于Docker部署Dify

  1. 在DIFY GitHub中下载Dify,选择目标版本我这里用的是1.1.3,下载完成后,把压缩包解压.

在这里插入图片描述

2.进入docker目录“C:\dify-1.1.3\dify-1.1.3\docker” ,将“.env.example”文件改名为“.env”,然后在该目录下打开cmd,通过如下命令启动Dify:

docker compose up -d

在这里插入图片描述
在这里插入图片描述

3.下载完成后执行下面命令,查看启动的镜像

docker ps

  1. 发现一台是Restarting
    在这里插入图片描述
  2. 查看这台Restarting的日志看看问题在哪里,复制这台前面对应的CONTAINER ID,问题是❌ dify-plugin-daemon 启动失败,是因为 它无法连接 PostgreSQL 数据库。

docker logs dcd7d1269b24

在这里插入图片描述
✅解决办法

1️⃣ 确认 PostgreSQL 容器是否启动成功
运行:

docker ps -a

在这里插入图片描述
说明✅ PostgreSQL 容器 docker-db-1 正常运行并且健康 (Up 2 minutes (healthy))

❌ 但插件容器 docker-plugin_daemon-1 虽然是 Up 状态,但它 正在反复崩溃重启,日志中报错:

failed to connect to `host=db user=postgres database=dify_plugin`: dial tcp 172.18.0.5:5432: connect: connection refused

🔍 根本问题
dify-plugin-daemon 容器使用的数据库地址是 db,真正的数据库容器叫:

CONTAINER: docker-db-1

✅ 解决方法
统一使用 docker-compose up
进入 C:\dify-1.1.3\dify-1.1.3\docker,直接运行:

docker-compose down -v  # 清干净旧容器(谨慎操作,注意数据备份)
docker-compose up -d

在这里插入图片描述
✅ 为什么这可以解决问题?
docker-compose.yml 默认会将所有服务放在同一个网络下(叫做 docker_default 或类似的名字),

这样 plugin-daemon 服务里的 host=db 就能正确解析为 postgres 容器,

只要数据库正常,plugin-daemon 就不会再 crash 或 restart。
⚠️ 注意事项
如果你 对数据库数据有保留需求,可以用下面这条命令来避免清理数据:

docker-compose down    # 不加 -v,不会删除 volume(数据库数据)

✅执行完之后在确认所有的服务是否都正常运行

docker ps

在这里插入图片描述
✅验证服务能否访问

http://localhost

进入了Dify 管理后台页面,登录邮箱密码即可。

使用本地部署Dify的过程中遇到的错误以及解决办法

下载插件报错

{"code": "invalid_param","message": "Reached maximum retries (3) for URL https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=langgenius/deepseek:0.0.5@21408d5c48cd9f18d66b08883d0999fe89e6d049c891324c2229dea23b9665d5","status": 400
}

🔍 错误含义
尝试下载了3次插件都失败了。大概是容器无法联网和DNS配置问题。
✅ 解决方法:让本地 Docker 容器能访问外网

✅ 1. 本机能访问外网吗? – 可以打开
确认自己的浏览器可以打开:
https://marketplace.dify.ai
✅ 2. 检查 Docker 网络 – 可以

docker run --rm byrnedo/alpine-curl http://www.google.com

在这里插入图片描述
✅ 2.1 如果不可以配置Dify可以访问外部网络
1、Dify后续运行在sandbox容器中,默认在该容器中不允许连接外部ip,通过配置“D:\dify-1.1.3\docker”目录中“docker-compose.yaml”文件中的sandbox部分,允许sandbox容器连接外部网络。
2、docker-compose.yaml文件中修改处如下,只需要在“networks”部分加入 “- default”即可(特别提示:换行后可能存在Tab符号,可以删除该行后的空白行)。改完配置后重启Dify
在这里插入图片描述

#在目录C:\dify-1.1.3\dify-1.1.3\docker下cmd 执行下面命令停止Dify
docker compose down
#在目录C:\dify-1.1.3\dify-1.1.3\docker下cmd 执行下面命令启动Dify
docker compose up -d

以上排查说明我的网络没问题,后续下载失败多点击几次,最终下载成功。

http://www.xdnf.cn/news/14168.html

相关文章:

  • 【Day48】
  • [Android] 水电工手册 25.5版本
  • 《A Gentle Introduction to Graph Neural Networks》
  • CQF预备知识:Python相关库 -- 核密度估计 scipy.stats
  • 【后端高阶面经:实战篇】59、Java面试高频考点深度解析:从基础到架构师必备
  • 在 LaTeX 文档中htbp是什么,! 是什么意思
  • 基于区块链的去中心化身份验证系统:原理、实现与应用
  • JavaScript基础-阻止事件冒泡
  • 生产者消费者消息流转和基本实操
  • PG靶机复现 MZEEAV
  • JavaScript基础-事件对象
  • Oracle索引
  • Vue 事件修饰符详解
  • Linux集市采购指南[特殊字符]:yum和apt的“抢货”大战!
  • 数据结构 学习 队列 2025年6月14日 11点22分
  • 吴恩达机器学习笔记(2)—单变量线性回归
  • 检测 AI 生成的真实世界模拟视频
  • AI绘画能发展到企业大规模使用的地步么?
  • SD和comfyui常用模型介绍和下载
  • NLP学习路线图(四十六):可解释性
  • 制品构建与管理 - Docker 镜像的最佳实践
  • 【Ubuntu 22.04 推荐的 apt 包管理方式详解】
  • 人工智能学习17-Pandas-查看数据
  • MySQL从库复制延迟的监测
  • conda虚拟环境管理
  • 数据治理域——数据建模设计
  • 使用NVIDIA NeMo Agent Toolkit扩展现实机器人仿真的物理AI应用
  • 逆向入门(5)程序逆向篇-AD_CM#2
  • 开疆智能ModbusTCP转Devicenet网关连接FANUC机器人配置案例
  • [C++] STL大家族之<map>(字典)容器(附洛谷)