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

Dify部署踩坑指南(Windows+Mac)

组件说明

在这里插入图片描述

Dify踩坑及解决方案

⚠️ 除了修改镜像版本,nginx端口不要直接修改docker-compose.yaml !!!!!!!

1、更换镜像版本

这个文件是由.env自动生成的,在.env配置

拉取dify-main后,默认的镜像版本是1.0.0,我将镜像版本修改为0.14.2是可以正常用的
(开始在Mac中拉取的就是1.0.0的镜像版本,在添加模型供应商时提示组件缺失,需要再次手动下载各个模型供应商组件,0.14.2版本不存在这个问题)

修改方式:在yaml中搜索1.0.0,将所有的版本号替换为0.14.2

services:# API serviceapi:image: langgenius/dify-api:0.14.2 
 web:image: langgenius/dify-web:0.14.2restart: always
 # worker service# The Celery worker for processing the queue.worker:image: langgenius/dify-api:0.14.2restart: always

2、ollama接入dify报错(容器网络隔离)

在这里插入图片描述

Docker内部容器地址默认为127.0.0.1和localhost,非宿主机,需要将 Ollama 服务暴露给网络才可以正常接入

解决:使用host.docker.internal

Windows

Ollama的默认监听地址为127.0.0.1,导致其他容器无法访问,启动Ollama时指定监听所有网络接口0.0.0.0

首先,在系统环境变量中添加OLLAMA_HOST,值为0.0.0.0,并启动ollama

ollama serve

如果提示端口被占用,在任务管理器中关闭所有运行的ollama服务

然后,在宿主机上验证Ollama是否运行正常

curl http://localhost:11434

接着,配置防火墙确保允许外部设备访问Ollama所使用的端口
在这里插入图片描述

Mac

1、设置Ollama环境变量

launchctl setenv OLLAMA_HOST "0.0.0.0"

如果是手动启动 Ollama,可以使用以下命令(临时)

ollama serve --host 0.0.0.0

在 Dify 配置中使用 host.docker.internal

2、从 Dify 容器中测试连接

curl http://host.docker.internal:11434

3、将 Ollama 的地址设置为

http://host.docker.internal:11434

Linux

在[Service]下加上Environment=“OLLAMA_HOST=0.0.0.0”
具体修改方法在这里

3、启动

在dify所在地址栏输入cmd,进入终端,拉取镜像,复制环境变量,采用默认端口启动

cd dify/docker
cp .env.example .env
docker compose up -d

如果修改了配置,需要重启docker,命令如下:

docker compose down
docker compose up -d

如果在拉取镜像中报错

Error response from daemon: Get “https://registry-1.docker.io/v2/”: EOF

请docker镜像源换为国内镜像源

Mac&Windows在Docker桌面中修改

在这里插入图片描述
点击顶部齿轮,进入Docker Engine

#镜像源如下


{"registry-mirrors": ["https://docker.1panel.live","https://docker.nju.edu.cn","https://docker.m.daocloud.io","https://dockerproxy.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","https://registry.cn-hangzhou.aliyuncs.com"]
}
Linux请修改daemon.json文件

vim /etc/docker/daemon.json
保存退出:esc–>:wq–>Enter

4、接入模型供应商时模型的url

模型供应商” > “ollama” > “添加”。
将 URL 设置为 http://host.docker.internal:11434,让 Docker 通过内部地址访问

Ollama的端口号默认为11434

端口冲突

1、Ollama端口被占用

如果之前部署过其他应用,用Ollama链接过其他应用,可能会遇到端口冲突的问题
方法1:关闭其他占用Ollama的进程
Windows

netstat -ano | findstr :11434

在这里插入图片描述

Mac/Linux

sudo lsof -i :11434

运行以下命令终止进程
Windows

taskkill /PID <PID> /F

Mac/Linux

kill -9 <PID>

方法2,修改Ollama默认端口号
在这里插入图片描述

2、dify默认端口被占用

dify的默认web端口号80
在docker中的.env文件中修改web端口号
修改如下:

EXPOSE_NGINX_PORT=8080 # 修改 Web 访问端口 (改这个)
EXPOSE_NGINX_SSL_PORT=8443 # 修改 SSL 端口
DIFY_PORT=5002 # 修改 API 服务端口

http://www.lryc.cn/news/547547.html

相关文章:

  • 安科瑞新能源充电桩解决方案:驱动绿色未来,赋能智慧能源
  • 深入剖析Java代理模式:静态代理与动态代理的实战应用
  • JVM与性能调优详解
  • 【嵌入式通信协议】串口的详细介绍
  • 乐鑫打造全球首款 PSA Certified Level 2 RISC-V 芯片
  • Go学习笔记:基础语法3
  • 虚拟卡 WildCard (野卡) 保姆级开卡教程
  • 机试准备第10天
  • Apache ECharts介绍(基于JavaScript开发的开源数据可视化库,用于创建交互式图表)
  • 最新版本TOMCAT+IntelliJ IDEA+MAVEN项目创建(JAVAWEB)
  • Linux - 进程通信
  • 使用 Arduino 的 WiFi 控制机器人
  • 网络安全等级保护2.0 vs GDPR vs NIST 2.0:全方位对比解析
  • verb words
  • unity console日志双击响应事件扩展
  • 维度建模维度表技术基础解析(以电商场景为例)
  • Leetcode 264-丑数/LCR 168/剑指 Offer 49
  • 阿里云MaxCompute面试题汇总及参考答案
  • 笔记:Directory.Build.targets和Directory.Build.props的区别
  • istio入门到精通-2
  • 第5章:vuex
  • [Python入门学习记录(小甲鱼)]第5章 列表 元组 字符串
  • Docker 学习(四)——Dockerfile 创建镜像
  • Java多线程与高并发专题——为什么 Map 桶中超过 8 个才转为红黑树?
  • LeetCode hot 100—二叉树的中序遍历
  • 代码随想录算法训练营第35天 | 01背包问题二维、01背包问题一维、416. 分割等和子集
  • 与中国联通技术共建:通过obdiag分析OceanBase DDL中的报错场景
  • IDEA 接入 Deepseek
  • 斗地主小游戏
  • 如何改变怂怂懦弱的气质(2)