Windows系统下Docker+Dify社区版本地部署记录
注:本文仅提供安装部署阶段的操作记录,不包含Dify使用指南。
一、Docker准备
1.下载Docker Desktop安装包(用windows系统的办公电脑,选AMD64版,即x86_64):
官方网站:www.docker.com
2.安装Docker
注,Docker安装无法选择路径,默认在C盘。如需修改可参考下文软链接的方式(试过一次但是当时没能running,后来折腾半天没用这个方案,供参考):https://blog.csdn.net/eren1/article/details/137337472
安装过程中我选择的是手动更新WSL,选哪个应该影响不大。
3.想尽办法让Docker run起来(应对各类报错)
参考前辈们的文章,确认了各类事项:
任务管理器-性能-CPU-虚拟化:已启用
控制面板-程序-启用或关闭Windows功能-开启了“Hyper-V”或“适用于Linux的Windows子系统”
还有一系列需要命令行的,比如:
wsl --install
wsl --update (或应对下载进度始终0.0%,可以改成wsl--update --web-download)
wsl --set-default-version 2
……
(可参考文档《WSL的基本命令》:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands)
如果仍然update不了可以去github下载安装包手动安装,加上代理什么的能下载稍微快一点:
https://github.com/microsoft/WSL/releases
报错原因多种多样,复制粘贴搜一搜,都解决了就可以run起来了。
——好耶!
4.配置Docker的部分设置(根据需求)
-
小齿轮-Resources:
在Advanced中选择资源存放路径(避免C盘爆满);
如网络环境需要代理,记得填Proxies。 -
小齿轮-Docker Engine
为减少上面的情况,在Docker Engine中配置镜像国内源(随便找,有些可能会失效,发布日期近一些的多粘几条)
这部分的格式参考,附目前我这能用的有两个镜像:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://ccr.ccs.tencentyun.com",
"https://mirrors.tuna.tsinghua.edu.cn/"
]
}
完后记得点击Apply&Restart。
还能继续running就好。
二、Dify准备
关于Dify的操作均可参考官方文档:https://docs.dify.ai/zh-hans
1.下载、运行Dify
从github下载社区版的zip包,解压到文件夹。随后进入dify的docker文件夹。(或者能用git的直接clone:git clone https://github.com/langgenius/dify.git
。)
文档非常清晰,搬运下代码。
cd dify/docker
cp .env.example .env
V2
docker compose up -d
V1
docker-compose up -d
顺利的话,运行完就能访问localhost/install进行管理员账户设置了。不顺利可参见下一部分。
2.碰到疑难杂症的解决
(1)pulling很久甚至request canceled。
内网限速出现的问题,条件允许的话换个网络环境吧,5分钟下完。
有下载过别人打包好的image,但docker import不太会用,以至于这台机器下俩星期了还没好
(然后被判定是违规软件那卸了吧hhh) 懒得管了,笔记本能跑就行。
(2)发现容器中的db-1反复重启,且会导致网页一直在转,随后提示内部服务错误。
不是所有设备都会遇到。通过前辈方案解决,链接:https://blog.csdn.net/weixin_65429391/article/details/141888157
修改Dify目录下,Docker中的docker-compose.yalm中的两个位置,修改/增加postgres-data后执行相关指令重启。
注,可能需要与Nginx转发导致502问题做出区分。开始没管db的问题,在dify/docker/nginx/conf.d下改了好半天api和web的ip地址都没用。
(3)关于Nginx转发问题的官方方案:
对于windows用户可能无法执行官方指令,可参考B站中前辈提供的代码查找ip。链接https://www.bilibili.com/opus/928662372843782145
另外有前辈使用python方案:https://blog.csdn.net/qq_53597256/article/details/143745465
(4)可能会出现的端口占用:
如80、443,关闭相应的程序,或修改.env里的端口即可。(资料很多,由于没碰到,暂不赘述。)
三、访问Dify网页
1.确认容器启用且正常启动:
2.按文档说明,进行本地环境登录:
浏览器访问:http://localhost/install
正常情况下应该不再报错,等待后出现设置管理员账户界面。
3.配置完之后就可以试着玩耍啦,知识库、智能体、工作流都可以用。
知识库创建,可以添加多种类型,单个文件不超过15M的文档,进行分段。
智能体、工作流与其他商用大模型智能体、Coze工作流都比较相似,不过工作流内容会少一点。
4.模型配置(以配置Ollama中glm4模型为例)
如需添加Ollama中的模型,需在命令行中先操作,启动该模型。(关于Ollama的安装使用等请查看其他文章。)
ollama run 模型名称
在Dify界面右上角个人信息中的设置里,可以找到模型供应商,添加各种模型。我们找到Ollama的羊驼-添加模型。
随后填入模型信息,模型名称需要和Ollama中模型名称对应;基础URL因在Docker中使用,为http://host.docker.internal:11434
(Ollama默认端口11434,如有修改请更换。)
如果填写有误,右上角会有红色报错,可根据报错调整。
其他方式部署见页面下的文档链接,很清楚。
其他位置如上下文长度等也需进行填写选择,保存。刷新后建议配置设置-模型供应商-右上角“系统模型”中。(如此时添加glm4为chat模型,则无法在知识库中作为Text Embedding模型使用也无法作为语音、视觉等模型使用。)
————————
以上。其他功能的具体使用方式仍在进一步探索中。
2024.12.23(哦豁没想到还能再记一篇XD)