目录

Dify部署踩坑指南WindowsMac

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

https://i-blog.csdnimg.cn/direct/faa4c559b93e4b54bbc5c818c9c87e85.png

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

这个文件是由.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

https://i-blog.csdnimg.cn/direct/41052a10f0aa4962916206551c9eb560.jpeg#pic_center

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

解决:使用host.docker.internal

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所使用的端口

https://i-blog.csdnimg.cn/direct/d4a4b30b2a8d4e668e6cc34d0a184dd9.jpeg#pic_center

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

在[Service]下加上Environment=“OLLAMA_HOST=0.0.0.0”

在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镜像源换为国内镜像源

https://i-blog.csdnimg.cn/direct/14ebb178f65b4405901d41794ee3fc57.png

点击顶部齿轮,进入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"
  ]
}

vim /etc/docker/daemon.json

保存退出:esc–>:wq–>Enter

模型供应商” > “ollama” > “添加”。

将 URL 设置为 ,让 Docker 通过内部地址访问

Ollama的端口号默认为11434

如果之前部署过其他应用,用Ollama链接过其他应用,可能会遇到端口冲突的问题

方法1:关闭其他占用Ollama的进程

Windows

netstat -ano | findstr :11434

https://i-blog.csdnimg.cn/direct/5f2a713332334b34831af23a2b710e5e.png

Mac/Linux

sudo lsof -i :11434

运行以下命令终止进程

Windows

taskkill /PID <PID> /F

Mac/Linux

kill -9 <PID>

方法2,修改Ollama默认端口号

https://i-blog.csdnimg.cn/direct/22cc197a50a144bbb5bedd82ae06517e.png

dify的默认web端口号80

在docker中的.env文件中修改web端口号

修改如下:

EXPOSE_NGINX_PORT=8080 # 修改 Web 访问端口 (改这个)

EXPOSE_NGINX_SSL_PORT=8443 # 修改 SSL 端口

DIFY_PORT=5002 # 修改 API 服务端口