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 service
  api:
    image: langgenius/dify-api:0.14.2 
 web:
    image: langgenius/dify-web:0.14.2
    restart: always
 # worker service
  # The Celery worker for processing the queue.
  worker:
    image: langgenius/dify-api:0.14.2
    restart: 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 服务端口

要在VS2017中配置OpenGL,首先需要下载和安装一些依赖库和工具。以下是配置OpenGL的步骤: 1. 下载并安装Visual Studio 2017。确保选择包含C++的工作负载。 2. 下载GLFW和GLAD。GLFW是一个窗口和输入管理库,而GLAD是用于加载OpenGL函数的库。 3. 从官方网站下载GLFW。将其解压到一个你喜欢的位置。 4. 从GLAD的官方网站(https://glad.dav1d.de/)选择OpenGL版本为3.3,并确保选择C/C++语言。 5. 在GLAD下载页面的底部,选择“Generate a loader”。将生成的glad.zip文件解压到一个你喜欢的位置。 6. 打开Visual Studio 2017,创建一个新的空项目。 7. 在解决方案资源管理器中,右键单击项目名称,选择“属性”。 8. 在项目属性窗口中,选择“配置属性”>“VC++目录”>“包含目录”。 9. 点击“编辑”按钮,并添加GLFW库的include文件夹路径。 10. 在同一窗口中,选择“库目录”,并添加GLFW库的lib文件夹路径。 11. 在“链接器”>“输入”中的“附加依赖项”中,添加以下库文件名称: glfw3.lib opengl32.lib 12. 点击“应用”按钮,然后点击“确定”按钮。 13. 在解决方案资源管理器中,右键单击源文件文件夹,选择“添加”>“现有项”,并添加GLAD的glad.c文件。 14. 在您的源文件中,添加以下代码以包含必要的头文件并初始化GLFW和GLAD: ```cpp #include <GLFW/glfw3.h> #include <glad/glad.h> int main() { // 初始化GLFW glfwInit(); // 配置OpenGL版本和核心属性 glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 创建窗口对象 GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL", NULL, NULL); if (window == NULL) { // 窗口创建失败的处理逻辑 glfwTerminate(); return -1; } // 将窗口的上下文设置为当前线程的主上下文 glfwMakeContextCurrent(window); // 初始化GLAD if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { // GLAD初始化失败的处理逻辑 return -1; } // 渲染循环 while (!glfwWindowShouldClose(window)) { // 渲染逻辑 glfwSwapBuffers(window); glfwPollEvents(); } // 清理和终止 glfwTerminate(); return 0; } ``` 15. 现在,你可以编译和运行你的项目,看到一个简单的窗口显示了OpenGL环境。 请注意,这只是一个基本的配置步骤,以便让你能够在VS2017中使用OpenGL。实际上,还有很多其他配置选项和更高级的OpenGL功能可以使用。你可以进一步研究和学习以扩展你的OpenGL开发知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值