(搭建环境)用win10玩dify:(wsl+ubuntu22.04+docker-desktop)
(搭建环境)用win10玩dify:(wsl+ubuntu22.04+docker-desktop)
用windows玩dify
1.windows:个人没有私有linux服务设备,之前想入手mac4,奈何预算有限,计划搁置,就继续用win10玩
2.dify社区版:后端即服务,agent大势所趋
3.基础技能:git/docker/shell/linux/python
上终图,浏览器最上边的地址就是我部署好的dify服务地址,其技术原理为在 Windows 宿主机上通过 WSL(Linux 子系统)运行服务,并在同一物理机的不同操作系统环境中实现目标服务的访问。
搭建环境
宿主机:win10
linux子系统:ubuntu22.04(以wsl服务的形式存在在宿主机上)
docker-desktop:选择docker-compose的方式部署dify
目标服务:dify(运行在linux子系统的docker中)
1.win10安装wsl2
网络教程很多, 安装完成后可在此电脑左边导航栏看到linux子系统,
2.wsl安装ubuntu
网络教程很多,需要注意的是,
- 设置完成后保持好自己的username和passport
- 设置登录权限,可以直接在windows下对linux内的文件进行读写(编辑脚本、改代码等)
- 如果是早已经安装好的wsl,可能需要更新,在更新的时候有很大可能因为网络问题而失败,附带参考链接 docker Desktop安装WSL --update报错问题

win10安装docker-desktop
注意:这里的docker使用的是wsl里的ubuntu22.04作为engine,附图
安装成功后可以看到左下角的运行正常
linux子系统里(wsl)部署dify
直接参考dify官方文档Docker Compose 部署,需要注意的是:
1.修改docker-compose.yaml文件,修改配置,我只修改了 negix的配置,如下图
增加代码段
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
2.create 新文件,目录:./nginx/default.conf
server {
listen 80;
server_name _;
location /api {
proxy_pass http://api:5001; # 直接使用服务名(非容器名)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://web:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- 修改完后, 在./dify/docker目录启动镜像
docker-compose down && docker-compose up -d
成功如图

4. 宿主机web登录dify,设置user
在这里注意的是,我遇到了登录正常但是显示不正常(具体的现象就是页面只有dify,无登录入口)的问题,启动浏览器的开发者模式查看debug信息,定位到前端连接后端服务失败的问题,解决方案就是步骤3,因为默认的 docker-compose.yml 部署,Nginx 配置文件是未被挂载到宿主机的,要自行配置 yaml文件,Nginx 正确指向 API 容器的服务名称,否则会导致容器间通信失败。
3种常用部署dify的方式
| 特性 | 直接使用 Docker Desktop 拉取镜像 | WSL 中通过源代码部署 | WSL 中通过 Docker Compose 部署 (本文) |
|---|---|---|---|
| 安装难度 | ⭐⭐⭐⭐ 极简(一键拉取镜像) | ⭐⭐ 复杂(需手动安装依赖) | ⭐⭐⭐ 中等(依赖自动化,需编写配置文件) |
| 依赖管理 | ⭐⭐⭐⭐ 容器隔离,无污染 | ⭐ 需手动管理,易冲突 | ⭐⭐⭐⭐ 容器隔离,依赖封装 |
| 隔离性 | ⭐⭐⭐⭐ 高(独立容器) | ⭐ 低(直接运行在用户空间) | ⭐⭐⭐⭐ 高(多服务容器隔离) |
| 配置灵活性 | ⭐⭐ 低(依赖镜像预设) | ⭐⭐⭐⭐ 高(可修改源码) | ⭐⭐⭐ 中高(通过 Compose 文件自定义) |
| 资源占用 | ⭐⭐⭐ 低(单容器) | ⭐⭐ 中高(完整语言环境) | ⭐⭐⭐ 中(多容器但可控) |
| 维护成本 | ⭐⭐⭐⭐ 低(镜像更新即可) | ⭐ 高(需手动维护依赖) | ⭐⭐⭐ 中(版本化 Compose 文件) |
| 网络配置 | ⭐⭐⭐ 手动映射端口 | ⭐⭐ 需配置网络互通 | ⭐⭐⭐⭐ 自动桥接网络 |
| 适用场景 | 快速体验 | 深度定制开发 | 生产部署、多服务协作 |
更多推荐
所有评论(0)