Dify 更新操作指南
更新前准备
1. 环境检查
# 检查当前服务运行状态 docker compose ps # 检查 Docker 版本 docker --version docker compose version
2. 重要文件备份
# 创建带时间戳的备份目录 $backupDir = "backup_$(Get-Date -Format 'yyyyMMdd_HHmmss')" New-Item -ItemType Directory -Path $backupDir # 备份环境配置文件 Copy-Item .env "$backupDir\.env" # 可选:备份数据库数据(如果需要) # docker compose exec db pg_dump -U postgres dify > "$backupDir\database_backup.sql"
更新执行步骤
步骤 1: 停止现有服务(如果正在运行)
# 优雅停止所有服务 docker compose down # 检查是否完全停止 docker compose ps
步骤 2: 拉取最新镜像
# 拉取所有服务的最新镜像 docker compose pull
预期输出示例:
✔ api Pulled ✔ worker Pulled ✔ web Pulled ✔ db Pulled ✔ redis Pulled ✔ nginx Pulled ✔ weaviate Pulled ✔ sandbox Pulled ✔ plugin_daemon Pulled ✔ ssrf_proxy Pulled
步骤 3: 启动更新后的服务
# 后台启动所有服务 docker compose up -d
步骤 4: 验证服务状态
# 检查所有容器状态 docker compose ps # 查看服务日志(可选) docker compose logs -f --tail=50
验证更新成功
1. 服务状态检查
确保以下服务都显示为 "Up" 状态:
| 服务名 | 镜像版本 | 状态要求 | 端口 |
|---|---|---|---|
| api | langgenius/dify-api:1.9.1 | Up | 5001 |
| web | langgenius/dify-web:1.9.1 | Up | 3000 |
| worker | langgenius/dify-api:1.9.1 | Up | 5001 |
| worker_beat | langgenius/dify-api:1.9.1 | Up | 5001 |
| db | postgres:15-alpine | Up (healthy) | 5432 |
| redis | redis:6-alpine | Up | 6379 |
| nginx | nginx:latest | Up | 80,443 |
| weaviate | semitechnologies/weaviate:1.19.0 | Up | - |
| sandbox | langgenius/dify-sandbox:0.2.12 | Up | - |
| plugin_daemon | langgenius/dify-plugin-daemon:0.3.0-local | Up | 5003 |
| ssrf_proxy | ubuntu/squid:latest | Up | 3128 |
2. 访问测试
-
Web 控制台: http://localhost
-
HTTPS 访问: https://localhost
-
插件服务: http://localhost:5003
常见问题排查
问题 1: 镜像拉取失败
症状: Error response from daemon: failed to resolve reference
解决方案:
# 检查网络连接 Test-NetConnection registry-1.docker.io -Port 443 # 检查 DNS 解析 nslookup registry-1.docker.io # 配置 Docker 镜像源(如果需要) # 编辑 Docker Desktop 设置 -> Docker Engine
问题 2: 容器启动失败
症状: 容器状态显示 "Exited" 或 "Restarting"
排查步骤:
# 查看具体容器日志 docker compose logs [服务名] # 检查端口占用 netstat -ano | findstr :80 netstat -ano | findstr :443 # 检查磁盘空间 Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID,FreeSpace,Size
问题 3: 数据库连接问题
症状: API 服务无法连接数据库
解决方案:
# 检查数据库容器状态 docker compose exec db pg_isready -U postgres # 重启数据库服务 docker compose restart db # 检查环境变量配置 docker compose exec api env | grep DB_
📝 更新后配置检查
1. 环境变量验证
检查 .env 文件中的关键配置:
-
SECRET_KEY: 应用密钥 -
DB_*: 数据库连接配置 -
REDIS_*: Redis 连接配置 -
FILES_URL: 文件服务 URL
2. 数据迁移(如果需要)
# 执行数据库迁移(如果有新版本要求) docker compose exec api flask db upgrade
回滚操作
如果更新后出现问题,可以快速回滚:
# 停止当前服务 docker compose down # 恢复备份的配置文件 Copy-Item "backup_YYYYMMDD_HHMMSS\.env" .env # 使用之前的镜像版本(需要在 docker-compose.yaml 中指定版本) docker compose up -d
以上是我在更新时出现的问题,日常笔记。
1万+

被折叠的 条评论
为什么被折叠?



