当前位置: 首页 > news >正文

使用 Docker Compose 部署 Dify

部署前准备

确保机器满足以下最低系统要求。

硬件

  • CPU >= 2 Core
  • RAM >= 4 GiB

软件

操作系统所需软件说明
macOS 10.14 或更高版本Docker Desktop(含 Docker Compose 2.24.0+)Docker 虚拟机至少配置 2 个虚拟 CPU 和 8 GiB 内存。

安装说明详见 Mac 版 Docker Desktop 安装指南。
Linux 发行版Docker 19.03+

Docker Compose 2.24.0+
安装说明详见 Docker 引擎安装指南 和 Docker Compose 安装指南。
Windows(启用 WSL 2)Docker Desktop(含 Docker Compose 2.24.0+)源代码和绑定到 Linux 容器的数据建议存储在 Linux 文件系统中,而非 Windows。

安装说明详见 Windows 版 Docker Desktop 安装指南。

部署并启动

1、克隆 Dify

git克隆 Dify 源代码到本地机器。

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

用git bash的话可以用下面这个指令

git clone --branch 1.11.4 https://github.com/langgenius/dify.git /e/dify

2、启动 Dify

  1. 进入 Dify 源代码中的docker目录:
    cd dify/docker
  2. 复制必要的环境配置文件:
    cp .env.example .env
    如需自定义部署,参见 自定义。
  3. 启动容器:

    Dify 需要 Docker Compose 2.24.0 或更高版本。运行docker compose version确认版本。

    docker compose up -d
    启动以下容器:
    • 5 个核心服务:apiworkerworker_beatwebplugin_daemon
    • 6 个依赖组件:weaviatedb_postgresredisnginxssrf_proxysandbox
    应看到类似以下的输出,显示每个容器的状态和启动时间:
    [+] Running 13/13 ✔ Network docker_ssrf_proxy_network Created 10.0s ✔ Network docker_default Created 0.1s ✔ Container docker-sandbox-1 Started 0.3s ✔ Container docker-db_postgres-1 Healthy 2.8s ✔ Container docker-web-1 Started 0.3s ✔ Container docker-redis-1 Started 0.3s ✔ Container docker-ssrf_proxy-1 Started 0.4s ✔ Container docker-weaviate-1 Started 0.3s ✔ Container docker-worker_beat-1 Started 3.2s ✔ Container docker-api-1 Started 3.2s ✔ Container docker-worker-1 Started 3.2s ✔ Container docker-plugin_daemon-1 Started 3.2s ✔ Container docker-nginx-1 Started 3.4s
  4. 验证所有容器是否成功运行:
    docker compose ps
    应看到类似以下的输出,每个容器的状态应为Uphealthy
    NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS docker-api-1 langgenius/dify-api:1.10.1 "/bin/bash /entrypoi…" api 26 seconds ago Up 22 seconds 5001/tcp docker-db_postgres-1 postgres:15-alpine "docker-entrypoint.s…" db_postgres 26 seconds ago Up 25 seconds (healthy) 5432/tcp docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 26 seconds ago Up 22 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp docker-plugin_daemon-1 langgenius/dify-plugin-daemon:0.4.1-local "/bin/bash -c /app/e…" plugin_daemon 26 seconds ago Up 22 seconds 0.0.0.0:5003->5003/tcp, :::5003->5003/tcp docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 26 seconds ago Up 25 seconds (health: starting) 6379/tcp docker-sandbox-1 langgenius/dify-sandbox:0.2.12 "/main" sandbox 26 seconds ago Up 25 seconds (health: starting) docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 26 seconds ago Up 25 seconds 3128/tcp docker-weaviate-1 semitechnologies/weaviate:1.27.0 "/bin/weaviate --hos…" weaviate 26 seconds ago Up 25 seconds docker-web-1 langgenius/dify-web:1.10.1 "/bin/sh ./entrypoin…" web 26 seconds ago Up 25 seconds 3000/tcp docker-worker-1 langgenius/dify-api:1.10.1 "/bin/bash /entrypoi…" worker 26 seconds ago Up 22 seconds 5001/tcp docker-worker_beat-1 langgenius/dify-api:1.10.1 "/bin/bash /entrypoi…" worker_beat 26 seconds ago Up 22 seconds 5001/tcp

3、访问

  1. 打开管理员初始化页面,设置管理员账户:
    # 本地环境 http://localhost/install # 服务器环境 http://your_server_ip/install
  2. 完成管理员账户设置后,在以下地址登录 Dify:
    # 本地环境 http://localhost # 服务器环境 http://your_server_ip

自定义如需自定义部署,编辑相关文件中的环境变量,然后重启 Dify。

1、编辑环境变量

  • 必要的启动值位于docker/.env文件中(部署时从docker/.env.example复制创建)。直接编辑即可。
  • 可选或特定提供商的设置docker/envs/下有对应模板。要覆盖默认值,复制相应模板(去掉.example后缀),然后编辑副本。例如:
    cd dify/docker cp envs/vectorstores/milvus.env.example envs/vectorstores/milvus.env

docker/.env中的值优先于任何docker/envs/*.env文件中的值。

所有变量的说明,详见 环境变量。

2、重启 Dify

docker compose down docker compose up -d

升级不同版本的升级步骤可能有所不同。详见 Releases 页面中提供的目标版本升级指南。

升级后,对照各.env.example文件检查对应的.env,确认是否有新增或变更的变量

http://www.jsqmd.com/news/1079773/

相关文章:

  • JS、浏览器——栈和队列(事件循环相关)
  • 移动端开发工具按键精灵手机版安卓/IOS开发必备键盘按键键码值(keyCode)对照表
  • 最值得大学生考的十大证书:2026年高含金量考证通关指南
  • 大模型训练全流程实战指南工具篇——大模型训练参数调优实战!
  • 【课程设计/毕业设计】基于小程序的校园社团资讯发布与交互系统设计与实现 高校学生社团组织管理信息化小程序设计与实现【附源码、数据库、万字文档】
  • 真实复盘:舵机软件研发的日常,没有捷径,只有深耕
  • Element UI el-upload 多文件上传踩坑与解决方案
  • 第三卷:《组合逻辑:没有记忆的“直肠子”侠客》
  • PCF80可以做共定位分析吗?从细胞邻近关系看懂真实肿瘤微环境
  • 智能旅游中的路线规划与体验提升
  • 人工排班不均引发员工投诉,智能排班平衡班次分配降低离职风险
  • 不止是补能设备!三款家用充电桩深度体验,解锁多元用车新方式
  • 工业级SRAM芯片高速低功耗存储方案
  • 番外篇:时序逻辑——“他终于开始记仇了”
  • 一文讲清必火AI的业务结构与AI增长逻辑
  • 【毕业设计】基于 SpringBoot 的学生社团招新与活动管理系统设计与实现 轻量化高校社团日常运维小程序设计与实现(源码+文档+远程调试,全bao定制等)
  • IntelliJ IDEA Windows安装全链路拆解:从JDK配置失败到激活失效,6步精准定位+5分钟极速修复
  • 口碑好的装修公司哪个靠谱
  • ClaudeAPI 知识库落地指南:从资料整理到上线使用
  • Apache Tomcat 11.0.23 发布:实现 Jakarta EE 11 部分规范,多方面改进引关注!
  • Hive 数据仓库
  • 小程序计算机毕设之基于 SpringBoot 的社团成员管理与活动统计系统设计与实现 校园文化建设下高校社团服务管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 小程序毕业设计-基于 SpringBoot 与微信小程序的美妆线上商城设计与实现 前后端分离架构下美妆店铺销售服务小程序设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 330kV线路距离保护设计:从原理到整定与调试的工程实践
  • DiffusionGemma与自回归模型的对决:26B MoE文本扩散模型的推理效率实测
  • 掌握Stardew Valley自动化:Pathoschild模组集合完全指南
  • 小程序制作平台哪家好该怎么挑选?
  • 从文档到问答助手:Claude API 在知识库检索中的应用
  • 《Windows 10深度攻略》第2版 - 第1章
  • FK-Percolation相变解析性证明:从簇展开到对偶性的数学物理桥梁