windows docker部署dify所遇到的问题及一些配置修改
其实关于dify部署本人尝试过很多方法,因为公司要用到,而自己又不会python,但是偏偏公司的服务器装不上docker desktop,后面有空会把自己踩过的坑都记录,像 源码部署dify、podman部署dify、k8s部署、vmware安装的windows server系统,然后在windwos上安装linux,在linux里面部署docker engine,然后在部署dify,q嵌套虚拟机等等。最后还是docer部署dify最省事
一、当docker拉取完,前端访问需要更换端口,这里以更换89为例子
解决方案:
修改dify项目docker目录下的env文件:

Dify.exe上 停止服务 然后 启动服务
等到浏览器打开 127.0.0.1/install 时,修改一下地址为: 127.0.0.1:89/install 即可打开Dify

二、如何修改dify的上传限制
修改docker目录下的env文件
具体指修改多少自己定义
UPLOAD_FILE_SIZE_LIMIT=1500
NGINX_CLIENT_MAX_BODY_SIZE=1500M
其他修改
上传图片限制,默认 10M
UPLOAD_IMAGE_FILE_SIZE_LIMIT=1000
# 上传视频大小限制,默认 100M
UPLOAD_VIDEO_FILE_SIZE_LIMIT=1000
# 上传音频大小限制,默认 50M
UPLOAD_AUDIO_FILE_SIZE_LIMIT=500
三、镜像拉取完之后,plugin_daemon-1服务或者db-1服务一直重启,然后浏览器输入localhost:install 页面一直加载不出来
这个时候你点进db-1容器里面看日志,一直报
FATAL: data directory "/var/lib/postgresql/data/pgdata" has invalid permissions
2025-03-27 15:42:41 2025-03-27 07:42:41.324 UTC [1] DETAIL: Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
2025-03-27 15:45:30 2025-03-27 07:45:30.967 UTC [1] FATAL: data directory "/var/lib/postgresql/data/pgdata" has wrong ownership
2025-03-27 15:45:30 2025-03-27 07:45:30.967 UTC [1] HINT: The server must be started by the user that owns the data directory.
2025-03-27 13:55:56 2025-03-27 13:55:56 PostgreSQL Database directory appears to contain a database; Skipping initialization
原因:其实就是postgres-data的文件夹权限不够
解决方法
方法一:
参考链接:Windows Docker部署Dify,容器db-1总是重启,导致http://localhost:80刷新不出来_dify重启-CSDN博客
1、进入dify源码的docker目录下,打开docker-compose.yaml:
找到services下的db,修改volumes,将./volumes/db/data改为postgres-data。

在docker-compose.yaml文件的最末尾的volumes下添加postgres-data:

注意,该volumes与services同级。
2、在Docker Desktop运行的情况下,win+r打开cmd,进入dify源码的docker目录下:
执行
docker-compose down -v
完成后继续执行
docker-compose up
运行完成后,容器重启,db-1恢复正常。
方法二:参考链接 https://zhuanlan.zhihu.com/p/19665511733
在Dify就是在docker目录下的“docker-compose.yaml”文件里面的:
volumes:
- ./volumes/db/data:/var/lib/postgresql/data
修改为:
volumes:
- ./volumes/db/data:/var/lib/postgresql/data && sudo chmod 0700 /var/lib/postgresql/data
或者
volumes:
- ./volumes/db/data:/var/lib/postgresql/data && sudo chmod 0750 /var/lib/postgresql/data
这样应该可以运行起来了。
四、dify运行起来后发现很卡
看一下这里用到了多少,这里不设置docker是默认2个,是完全不够用的,然后去Docker设置里面调一下容器内存就行

这个地方调大就行了

五、运行成功,注册完成进到页面,部署Dify后忘记密码或者管理员邮箱设置的是假邮箱收不到验证码解决:
本地部署Dify初始化后,忘记密码、密码错误如何重置?这个问题官方文档里有写,在服务器上执行以下命令进行密码重置。
docker exec -it docker-api-1 flask reset-password
输入账户 email 以及两次新密码即可重置。
六、登录成功dify插件安装不上,保存失败或者卡住
1.1.3之前的版本这里首先是建议直接拉取最新代码,目前发现新版本代码已经修复这个bug,如果不想更新代码的话,报
docker-plugin_daemon - watcher.go:73: [ERROR]list installed plugins failed: plugin_unique_identifier is not valid

解决方法:
参考官方链接https://github.com/langgenius/dify-plugin-daemon/issues/112
1.在powershell进入 PostgreSQL 容器
docker exec -it docker-db-1 bash
2.登录到 PostgreSQL 数据库
在容器的交互式终端中,使用 psql 命令登录到 PostgreSQL 数据库。假设数据库名为 your_database,用户名为 your_user,执行以下命令:bash
psql -d your_database -U your_user
执行该命令后,需要输入用户密码,输入正确密码后即可登录到数据库。
3. 执行 SQL 删除语句
登录到数据库后,在 psql 命令行中输入要执行的 SQL 删除语句:sql
delete from plugin_installations where plugin_unique_identifier is not null;
delete from plugin_declarations where plugin_unique_identifier is not null;
delete from ai_model_installations where plugin_unique_identifier is not null;
delete from plugins where plugin_unique_identifier is not null;
输入完毕后,按下回车键,PostgreSQL 会执行该删除语句,并返回受影响的行数。
4. 退出数据库和容器
执行完 SQL 语句后,若要退出 psql 命令行,输入 \q 并按下回车键:
\q
然后,若要退出容器的交互式终端,输入 exit 并按下回车键:
exit
5.进入都dify的插件文件夹,一般是这个路径docker\volumes\app\storage,删除
/app/storage/cwd/plugins/plugin/app/storage/cwd/plugins/plugin-working/app/storage/cwd/plugins/persistence/app/storage/cwd/plugins/plugin-root
然后powershell执行
docker compose down
docker compose up -d
完成
七、插件安装完成后, api key 绑定不上,保存失败
参考官方链接:https://github.com/langgenius/dify/issues/16553
https://github.com/langgenius/dify/issues/14654
我自己按官方人员回答是没解决
/console/api/workspaces/current/model-providers/langgenius/tongyi/tongyi
at 3451-f3b01e497296e6f6.js:1:4366
File "/app/api/.venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
文件 “/app/api/.venv/lib/python3.12/site-packages/flask/app.py”,第 917 行,full_dispatch_request
rv = self.dispatch_request()
rv = self.dispatch_request()
还几个错误信息,反正绑定不上
直接打开docker文件夹下的你复制出来的.env文件,拉到文件最后,加上以下配置,

然后powershell执行
docker compose stop
docker compose up -d
重启完之后如果还不行,不要着急,这个有缓存,多重启几次或者过一段时间再来,我自己重启第一次之后也是不行,后面又重启了,然后去做其他事情了,回来再设置就可以了。
八、要安装本地插件或自己开发的插件,有验证安装失败时
直接打开docker文件夹下的你复制出来的.env文件,拉到文件最后,找到这个配置,改成false,
然后powershell执行
docker compose stop
docker compose up -d
当上面的问题基本改完之后,那么就可以正常使用dify了。
这里分享一下其他大佬写的dify的相关文档
这个大佬还做了windows 一键部署dify都exe程序工具
Docs
https://i3k3w6il9z.feishu.cn/docx/Q9LwdDPtxoXKT1xbGNoc3SnEnfe
Docs
https://z0yrmerhgi8.feishu.cn/wiki/OBFxw2GtDiULLXk9QSlcHIkunhb
更多推荐
所有评论(0)