11 自部署 Docker Compose
学习目标
你将理解 Dify 自部署的基本流程、最低要求和常见风险。
什么时候需要自部署
考虑自部署的原因:
- 数据需要留在自己的服务器。
- 需要更强的网络和权限控制。
- 需要接入内部模型、数据库或系统。
- 团队需要统一管理。
- 有特殊合规要求。
不建议一开始就自部署的情况:
- 只是学习 Dify。
- 没有服务器维护经验。
- 不知道如何备份和升级。
- 团队还没验证真实需求。
官方最低要求
官方 Docker Compose 快速开始文档中,自部署前的最低硬件要求包括:
- CPU >= 2 Core。
- RAM >= 4 GiB。
macOS 使用 Docker Desktop 时,官方建议给 Docker 虚拟机至少 2 个 vCPU 和 8 GiB 内存。Linux 需要 Docker 19.03+ 和 Docker Compose 1.28+。
基础部署流程
官方文档的基本流程是:
- 克隆 Dify 源码,建议使用 GitHub 最新 release tag。
- 进入
dify/docker目录。 - 复制
.env.example为.env。 - 使用 Docker Compose 启动。
示例:
bash
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d会启动哪些服务
官方文档列出的 Docker Compose 启动内容包括核心服务和依赖组件,例如:
- api
- worker
- worker_beat
- web
- plugin_daemon
- weaviate
- db_postgres
- redis
- nginx
- ssrf_proxy
- sandbox
实际服务可能随版本变化,请以当前官方 compose 文件为准。
部署后第一件事
不要急着开放公网。先确认:
- 管理员账号是否创建。
- 模型供应商是否配置。
- 文件上传是否正常。
- 知识库索引是否正常。
- 插件服务是否正常。
- 日志是否有错误。
生产注意事项
- 配置强密码和访问控制。
- 反向代理启用 HTTPS。
- 定期备份数据库和上传文件。
- 记录当前 Dify 版本。
- 升级前先备份。
- 不要把测试密钥和生产密钥混用。
- 限制公网访问管理入口。
常见错误
- 服务器内存太小。
- Windows 下把数据放在非 Linux 文件系统导致性能差。
.env没改就直接生产使用。- 没有备份就升级。
- 只备份 compose 文件,没有备份数据库和存储。