首页
/ Dify 平台容器化部署完全指南

Dify 平台容器化部署完全指南

2026-03-10 04:19:18作者:冯爽妲Honey

1 环境准备与兼容性检查

1.1 系统需求验证

您需要确保部署环境满足以下最低要求:

组件 最低版本 推荐版本
Docker 20.10.0 24.0.0+
Docker Compose 2.0.0 2.20.0+
内存 4GB 8GB+
磁盘空间 10GB 20GB+ SSD

▶️ 检查当前环境版本:

docker --version
docker compose version

⚠️ 注意:生产环境建议使用Ubuntu 20.04 LTS或更高版本的操作系统,确保内核支持容器技术。

📌 要点总结:验证系统兼容性是部署的基础,过时的Docker版本可能导致服务启动失败或性能问题。

1.2 资源规划建议

根据预期使用规模,推荐以下硬件配置:

部署规模 CPU核心 内存 存储 适用场景
开发测试 2核 4GB 20GB 功能验证、小型团队试用
中小型生产 4核 16GB 100GB SSD 50人以内团队日常使用
大型生产 8核+ 32GB+ 500GB+ SSD 企业级应用、高并发场景

📌 要点总结:合理的资源规划可避免性能瓶颈,向量数据库对内存要求较高,生产环境建议单独部署。

1.3 网络环境配置

请确保服务器开放以下端口:

端口 用途 访问控制建议
80/tcp HTTP流量 仅用于Certbot验证,日常关闭
443/tcp HTTPS流量 对公网开放
5432/tcp PostgreSQL数据库 仅容器内部访问
6379/tcp Redis服务 仅容器内部访问

⚠️ 注意:生产环境应配置防火墙,仅开放必要端口,并设置适当的网络隔离。

📌 要点总结:网络配置直接影响服务可用性和安全性,需根据实际环境调整。

2 部署实施与配置

2.1 项目获取与环境初始化

预计完成时间:5分钟

▶️ 获取项目代码:

git clone https://gitcode.com/GitHub_Trending/di/dify
cd dify/docker

▶️ 复制环境配置文件:

cp .env.example .env
cp middleware.env.example middleware.env

⚠️ 注意:如无Git环境,可通过项目页面下载源码包并解压。

📌 要点总结:初始化阶段主要完成项目获取和配置文件准备,为后续部署奠定基础。

2.2 核心配置参数设置

预计完成时间:15分钟

使用文本编辑器打开.env文件,配置以下关键参数:

DB_USERNAME说明:PostgreSQL数据库用户名,默认值:postgres
DB_PASSWORD说明:数据库密码,建议设置强密码
DB_HOST说明:数据库服务地址,容器部署保持默认值db
DB_PORT说明:数据库端口,默认值:5432
DB_DATABASE说明:数据库名称,默认值:dify

REDIS_HOST说明:Redis服务地址,容器部署保持默认值redis
REDIS_PORT说明:Redis端口,默认值:6379
REDIS_PASSWORD说明:Redis访问密码

VECTOR_STORE说明:向量数据库(存储和检索高维向量数据的专用数据库)类型,可选值:weaviate, milvus, opensearch
STORAGE_TYPE说明:文件存储类型,可选值:local, s3, azure_blob, google_storage

⚠️ 注意:所有密码应符合复杂度要求,至少包含8个字符,包括大小写字母、数字和特殊符号。

📌 要点总结:核心配置决定了服务的基本运行方式,特别是数据库和存储配置需仔细核对。

2.3 首次部署流程

预计完成时间:30分钟

▶️ 启动基础服务组合:

docker compose up -d

▶️ 如果需要使用特定向量数据库(以Weaviate为例):

docker compose -f docker-compose.yaml --profile weaviate up -d

▶️ 执行数据库迁移:

docker compose exec api flask db upgrade

▶️ 创建初始管理员账户:

docker compose exec api flask create-admin

Dify架构图 图1:Dify容器化部署架构示意图

⚠️ 注意:首次启动可能需要较长时间拉取镜像,请确保网络通畅。

📌 要点总结:首次部署需要完成镜像拉取、容器启动、数据库初始化等多个步骤,耐心等待所有服务就绪。

2.4 升级部署流程

预计完成时间:20分钟

▶️ 拉取最新代码和镜像:

cd dify
git pull
cd docker
docker compose pull

▶️ 重启服务并执行迁移:

docker compose up -d
docker compose exec api flask db upgrade

⚠️ 注意:升级前请务必备份数据库,重大版本更新建议先在测试环境验证。

📌 要点总结:升级部署需注意数据安全,遵循先备份后升级的原则,确保服务平滑过渡。

2.5 SSL证书配置

预计完成时间:10分钟

  1. .env文件中设置域名: APP_HOST说明:服务访问域名,如:dify.example.com

  2. ▶️ 初始化SSL证书:

docker compose up certbot-init
  1. ▶️ 设置自动续期:
docker compose up certbot-renew

⚠️ 注意:SSL配置需要公网可访问的域名,内网环境可跳过此步骤。

📌 要点总结:SSL证书是生产环境的必要配置,确保数据传输安全,同时避免浏览器安全警告。

3 系统优化与运维

3.1 性能参数调优

根据服务器配置调整以下性能参数:

WEB_CONCURRENCY说明:API服务工作进程数,建议设置为CPU核心数的2倍
CELERY_WORKER_CONCURRENCY说明:Celery工作进程数,建议设置为CPU核心数

▶️ 修改配置后重启服务:

docker compose down
docker compose up -d

📌 要点总结:适当的性能调优可显著提升系统响应速度和并发处理能力。

3.2 监控与日志管理

启用OpenTelemetry监控: ENABLE_OTEL说明:是否启用OpenTelemetry监控,值:true/false
OTLP_BASE_ENDPOINT说明:监控数据收集端点地址

▶️ 查看服务日志:

# 查看API服务日志
docker compose logs -f api

# 查看特定时间段日志
docker compose logs --since 30m api

📌 要点总结:完善的监控和日志系统是排查问题和保障系统稳定运行的关键。

3.3 存储后端配置

除默认本地存储外,支持多种云存储方案,以S3为例:

STORAGE_TYPE说明:设置为s3
S3_BUCKET_NAME说明:S3存储桶名称
S3_ACCESS_KEY说明:访问密钥
S3_SECRET_KEY说明:密钥
S3_REGION说明:存储区域

⚠️ 注意:使用云存储时,确保访问权限配置正确,避免数据泄露或访问失败。

📌 要点总结:选择合适的存储方案可提高数据可靠性和访问速度,降低本地存储压力。

3.4 故障排查决策树

当系统出现问题时,可按照以下步骤排查:

  1. 服务无法启动

    • 检查容器状态:docker compose ps
    • 查看日志:docker compose logs [服务名]
    • 检查端口占用:netstat -tulpn
  2. 数据库连接失败

    • 检查数据库容器状态
    • 验证数据库配置参数
    • 查看数据库日志:docker compose logs db
  3. API响应缓慢

    • 检查系统资源使用:docker stats
    • 查看API日志是否有错误
    • 检查数据库查询性能
  4. 向量数据库问题

    • 确认向量数据库服务状态
    • 检查内存使用情况
    • 验证向量数据库连接参数

Dify工作流编辑器 图2:Dify工作流编辑器界面

📌 要点总结:系统故障排查应遵循从整体到局部、从表象到本质的原则,逐步缩小问题范围。

4 部署后验证与维护

4.1 服务可用性验证

预计完成时间:5分钟

▶️ 检查所有服务状态:

docker compose ps

所有服务应显示为"Up"状态。访问配置的域名,应能正常加载Dify界面并完成注册登录流程。

📌 要点总结:部署后需验证核心功能可用性,确保服务正常运行。

4.2 数据备份策略

制定定期备份计划:

  1. 数据库备份:
docker compose exec db pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql
  1. 配置文件备份:
cp .env .env_backup_$(date +%Y%m%d)
cp middleware.env middleware.env_backup_$(date +%Y%m%d)
  1. 建议设置定时任务自动备份,并将备份文件存储在外部存储。

📌 要点总结:数据是系统的核心资产,定期备份是保障数据安全的重要措施。

4.3 安全最佳实践

  1. 定期更新镜像:
docker compose pull
docker compose up -d
  1. 限制容器资源:在docker-compose.yaml中设置资源限制
  2. 定期更换密码:更新.env文件后重启服务
  3. 启用网络隔离:配置容器网络,限制跨容器访问

📌 要点总结:安全是一个持续过程,需定期更新和加固系统,防范潜在风险。

通过以上步骤,您已完成Dify平台的容器化部署。这套部署方案不仅简化了安装过程,还提供了良好的可扩展性和维护性,可满足从开发测试到生产环境的各种需求。随着业务发展,您可以根据实际需求调整配置和资源,确保系统持续稳定运行。

登录后查看全文
热门项目推荐
相关项目推荐