Windows本地部署Dify(Docker)

Windows本地部署Dify(Docker)

官方文档:https://docs.dify.ai/zh/use-dify/getting-started/introduction

1. 环境准备

查看windows显卡:
Ctrl + Shift + Esc打开任务管理器,左侧选项卡选性能,然后可以看到GPU配置

  1. 准备git环境:

    下载并安装git:https://git-scm.com/install/windows

  2. 在本地某个位置新建文件夹Dify,选择文件夹,右键选择Open Git Bash Here。

  3. 输入git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git

    如果报错 bash: jq: command not found说明windows没有jq命令,这时可以手动输入最新的版本号。

    打开链接 https://github.com/langgenius/dify/releases/latest 浏览器地址栏里最后的部分就是最新的版本号,如1.13.3.

    直接输入:git clone --branch 1.13.3 https://github.com/langgenius/dify.git

    这样就将源代码下载到了本地。

  4. 将dify代码上传到自己的gitee仓库管理(可选)

    首先,确保已经参照gitee官网添加本机的ssh公钥。

    进入项目目录/dify:cd dify

    在gitee上需要创建一个名称为dify的完全空的仓库(不要初始化仓库),点击创建。在gitee页面上获取仓库的https地址,如:https://gitee.com/xumengting/dify.git

    回到git bash界面,如果没有配置过git,先进行Git全局设置:

    git config --global user.name "your_gitee_name"

    git config --global user.email "your_gitee_related_email_address"

    确保自己的目录在dify中,输入命令:git remote add dify <你的Gitee仓库地址>

    在git bash上创建并切到分支git checkout -b master(不然可能出现没有分支,只推送标签)

    推送本地代码到gitee:git push -u dify master

  5. 准备docker

    下载并安装docker:https://www.docker.com/products/docker-desktop/

    查看自己的docker compose版本:docker-compose --version

2. 按官方教程部署

Dify部署官方教程:https://docs.dify.ai/zh/self-host/quick-start/docker-compose

3. 遇到的问题

  1. 启动容器:docker compose up -d报错:error response from daemon: ports are not available: exposing port TCP 0.0.0.0:5003 -> 127.0.0.1:0:listen tcp 0.0.0.0:5003:bind: an orbidden by its access permissions
    原因:系统端口映射服务缓存异常。
    解决办法:重启Windows NAT服务:
    net stop winnat
    net start winnat

4. 注意事项

  1. 如果修改了本地.env文件中的环境变量,一定要重启Dify应用更改:
    docker compose down
    docker compose up -d

5. 补充:docker compose开启的核心服务

docker compose开启了一些核心服务,可以理解为一个服务就是一个容器。

Web:作为整个系统的前端入口。它负责处理用户的HTTP请求,提供网页界面和API接口,是用户与系统交互的桥梁。用户访问网站、调用API时,实际上就是在和这个服务打交道。

API:系统的核心业务逻辑处理中心。它接收来自Web前端的请求,执行创建、查询、更新等核心操作,并协调其他服务(如调用数据库、触发后台任务)。简单来说,它负责处理"干什么"的具体指令。

Worker:负责执行耗时的、后台的异步任务。比如发送邮件、处理视频、AI模型推理等。这些任务如果放在API或Web服务里做,会阻塞用户请求,导致页面卡顿。引入Worker后,API只需把任务"丢进"队列,Worker就会在后台取走并慢慢处理,前端可以立即响应用户。

Worker_Beat:定时任务的调度器。它负责按预定时间(如每天凌晨3点)触发特定的任务,并将这些任务发送给Worker去执行。没有它,系统就无法自动执行周期性任务,比如定期清理过期数据、生成报表等。通常,一个系统中只有一个worker_beat服务处于激活状态。

Plugin_Daemon:插件的"管家"。它负责管理第三方或自定义插件的整个生命周期,包括插件的安装、卸载、运行环境隔离以及任务执行。它就像一个轻量级的插件运行平台,确保外部代码在安全的环境下运行,不影响主系统的稳定性。

相关推荐
AAA小肥杨7 小时前
transformer库中的kv cache分析与调试
人工智能
染指11107 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
会议咨询7 小时前
2027年智慧能源、大数据应用与人工智能国际会议(SEBA 2027)
大数据·人工智能·能源
执伞人ONLY7 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
汤姆宝库7 小时前
安全深拆:越狱物理、注入攻击与纵深防御
人工智能·安全·机器学习·ai
微尘hjx8 小时前
【AI视觉软件 03】基于 Ultralytics + DeepSORT 的多目标跟踪与改进(支持YOLO全系列,重点车跟踪)
人工智能·yolo·目标跟踪·视觉检测·deepsort·ultralytics·车跟踪
GJGCY8 小时前
金融AI Agent厂商怎么选?系统集成、API/RPA、权限审计与异常恢复能力评估
人工智能·经验分享·ai·金融·智能体
D_C_tyu8 小时前
AI Vibe Coding | AI能力评估提示词参考
人工智能·提示词·vibe coding
IT_陈寒8 小时前
Python的列表推导式用不好真的会爆内存你知道吗
前端·人工智能·后端
ZhengEnCi8 小时前
vLLM是什么:PagedAttention 让大模型推理快 2-4 倍,还能撑起更长思维链
人工智能·性能优化·llm