最近在本地开发环境尝试部署Dify时,发现不少同行在Windows 10平台上遇到各种环境配置问题。作为一款新兴的AI应用开发框架,Dify的容器化部署本应简单高效,但实际在Windows环境下的Docker兼容性问题往往让新手踩坑。本文将分享经过实测验证的完整安装流程,包含从系统准备到服务验证的全套解决方案。
首先确认Windows 10版本为1903或更高(Win+R输入winver查看)。需要确保:
注意:家庭版用户需先升级到专业版或安装WSL2后端,可通过「设置-更新和安全-激活」验证版本。
bash复制docker --version
docker-compose --version
正常应显示类似Docker version 20.10.17的版本信息。
新建项目目录并下载官方compose文件:
bash复制mkdir dify && cd dify
curl -O https://raw.githubusercontent.com/langgenius/dify/main/docker-compose.yml
修改docker-compose.yml中的关键参数:
yaml复制services:
api:
environment:
- DB_HOST=postgres
- REDIS_HOST=redis
- STORAGE_TYPE=local
ports:
- "5001:5001"
执行部署命令:
bash复制docker-compose up -d
首次运行会拉取约2.3GB的镜像文件,具体耗时取决于网络状况。
若遇到端口占用错误(如5001被占用),可通过以下步骤解决:
bash复制netstat -ano | findstr :5001
"新端口:5001"Docker默认使用C盘存储镜像,可通过以下命令迁移数据:
powershell复制wsl --shutdown
wsl --export docker-desktop-data D:\docker\data.tar
wsl --import docker-desktop-data D:\docker\data D:\docker\data.tar --version 2
在WSL2配置文件中增加内存限制(新建或修改%USERPROFILE%\.wslconfig):
ini复制[wsl2]
memory=6GB
swap=2GB
运行以下命令确认各容器状态:
bash复制docker-compose ps
正常情况应显示api、worker、postgres等容器均为"Up"状态。
浏览器打开http://localhost:5001,首次使用需:
实测发现Chrome浏览器可能存在缓存问题,建议使用隐身模式访问。
在Docker Desktop设置中添加国内镜像源:
json复制{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
默认配置下PostgreSQL数据会随容器删除丢失,建议挂载卷:
yaml复制services:
postgres:
volumes:
- pg_data:/var/lib/postgresql/data
volumes:
pg_data:
经过完整测试,该方案在i5-8250U/16GB内存的Windows 10笔记本上运行稳定,API平均响应时间保持在300ms以内。对于需要长期运行的场景,建议将Docker Desktop设置为开机自启动,并通过资源监控确保系统不会因内存不足导致服务中断。