共计 4721 个字符,预计需要花费 12 分钟才能阅读完成。
概述
DIFY-WEB 是 Dify.AI 的前端应用 Docker 镜像,Dify 是一款 LLM 应用开发平台,目前已支持超过 10 万款应用的构建。该平台集成了 Backend as a Service (BaaS)和 LLMOps 的核心概念,覆盖了构建生成式 AI 原生应用所需的核心技术栈,包括内置的 RAG 引擎。通过 DIFY,用户可以基于任何 LLM 模型自助部署类似 Assistants API 和 GPTs 的能力。
本文档将详细介绍如何通过 Docker 容器化方式部署 DIFY-WEB,包括环境准备、镜像拉取、容器配置、功能测试及生产环境优化等关键步骤,帮助用户快速实现 DIFY-WEB 的本地化部署。
环境准备
Docker 环境安装
部署 DIFY-WEB 前需确保服务器已安装 Docker 环境,推荐使用以下一键安装脚本:
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
脚本将自动完成 Docker 及 Docker Compose 的安装与配置,适用于主流 Linux 发行版(Ubuntu、Debian、CentOS 等)。
镜像准备
镜像拉取
DIFY-WEB 官方镜像名称为langgenius/dify-web,属于多段镜像名(包含斜杠),根据轩辕镜像加速规则,拉取命令格式如下:
docker pull xxx.xuanyuan.run/langgenius/dify-web:latest
latest为推荐标签,如需使用其他版本,可替换为具体标签(如0.6.10)- 查看所有可用标签请访问DIFY-WEB 镜像标签列表
镜像验证
拉取完成后,可通过以下命令验证镜像是否成功获取:
docker images | grep langgenius/dify-web
预期输出应包含 xxx.xuanyuan.run/langgenius/dify-web 镜像信息,示例:
xxx.xuanyuan.run/langgenius/dify-web latest abc12345 2 weeks ago 1.2GB
容器部署
基本部署步骤
- 创建工作目录(可选,用于挂载配置文件和数据):
mkdir -p /opt/dify-web/{config,logs}
chmod -R 755 /opt/dify-web
- 启动容器:
DIFY-WEB 的具体端口配置需参考官方文档,建议先查阅 DIFY-WEB 镜像文档(轩辕) 获取端口信息。以下为通用部署命令(假设应用使用 8080 端口):
docker run -d \
--name dify-web \
--restart always \
-p 80:8080 \ # 端口映射:宿主机 80 端口映射到容器 8080 端口(请根据实际端口调整)-v /opt/dify-web/config:/app/config \ # 配置文件持久化(如需要)-v /opt/dify-web/logs:/app/logs \ # 日志文件持久化
-e TZ=Asia/Shanghai \ # 设置时区
xxx.xuanyuan.run/langgenius/dify-web:latest
参数说明
| 参数 | 说明 |
|---|---|
-d |
后台运行容器 |
--name dify-web |
指定容器名称为 dify-web |
--restart always |
容器退出时自动重启 |
-p 80:8080 |
端口映射,格式为 宿主机端口: 容器端口,需根据实际端口调整 |
-v /opt/dify-web/config:/app/config |
挂载配置目录,实现配置持久化 |
-e TZ=Asia/Shanghai |
设置容器时区为上海 |
容器状态检查
部署完成后,通过以下命令检查容器运行状态:
docker ps | grep dify-web
若状态为 Up 则表示启动成功,示例:
abc123456789 xxx.xuanyuan.run/langgenius/dify-web:latest "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:80->8080/tcp dify-web
功能测试
基础访问测试
- 本地访问:通过服务器本地命令测试应用响应
curl -I http://localhost:80 # 端口需与宿主机映射端口一致
预期返回 HTTP/1.1 200 OK 或类似成功状态码。
- 远程访问:在浏览器中输入
http:// 服务器 IP: 端口(如http://192.168.1.100:80),若能看到 DIFY-WEB 的登录或首页界面,说明部署成功。
核心功能验证
根据 DIFY-WEB 的功能特性,建议验证以下核心功能:
- 页面加载完整性(CSS、JavaScript 资源是否正常加载)
- 基础交互(按钮点击、表单提交等)
- 与后端服务的连接性(如配置后端 API 地址后,验证数据交互)
日志检查
若访问异常,可通过容器日志定位问题:
docker logs -f dify-web # - f 参数实时查看日志
生产环境建议
数据持久化
关键数据目录建议通过 -v 参数挂载到宿主机,避免容器删除导致数据丢失:
- 配置文件目录:
/app/config(具体路径以官方文档为准) - 日志目录:
/app/logs - 静态资源目录(如适用):
/app/public
环境变量配置
生产环境中应通过环境变量注入关键配置,而非硬编码:
docker run -d \
--name dify-web \
--restart always \
-p 80:8080 \
-v /opt/dify-web/config:/app/config \
-v /opt/dify-web/logs:/app/logs \
-e TZ=Asia/Shanghai \
-e API_BASE_URL=https://api.your-domain.com \ # 后端 API 地址
-e LOG_LEVEL=info \ # 日志级别
-e MAX_UPLOAD_SIZE=100M \ # 最大上传大小
xxx.xuanyuan.run/langgenius/dify-web:latest
网络安全
- 端口限制:仅开放必要端口,通过防火墙限制访问源 IP
# UFW 防火墙示例(允许 80 端口从特定 IP 段访问)ufw allow from 192.168.1.0/24 to any port 80 - HTTPS 配置:生产环境必须启用 HTTPS,推荐使用 Nginx 反向代理 +Let’s Encrypt 证书:
server {listen 443 ssl; server_name dify.your-domain.com; ssl_certificate /etc/letsencrypt/live/dify.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dify.your-domain.com/privkey.pem; location / { proxy_pass http://localhost:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;} }
资源限制
为容器设置 CPU 和内存限制,避免资源耗尽:
docker run -d \
--name dify-web \
--restart always \
--memory=2G \ # 限制最大内存为 2GB
--memory-swap=2G \ # 限制交换空间
--cpus=1 \ # 限制 CPU 核心数为 1
-p 80:8080 \
xxx.xuanyuan.run/langgenius/dify-web:latest
监控与告警
- 容器监控:集成 Prometheus+Grafana 监控容器资源使用
- 健康检查:配置 Docker 健康检查:
docker run -d \ --name dify-web \ --restart always \ -p 80:8080 \ --health-cmd "curl -f http://localhost:8080/health || exit 1" \ --health-interval 30s \ --health-timeout 10s \ --health-retries 3 \ xxx.xuanyuan.run/langgenius/dify-web:latest - 日志管理:使用 ELK 栈或 Filebeat 收集分析日志
定期更新
定期更新镜像以获取安全补丁和功能更新:
# 拉取最新镜像
docker pull xxx.xuanyuan.run/langgenius/dify-web:latest
# 停止并删除旧容器
docker stop dify-web && docker rm dify-web
# 启动新容器(使用原参数)docker run -d [ 原参数] xxx.xuanyuan.run/langgenius/dify-web:latest
故障排查
容器无法启动
- 检查端口冲突 :
# 查看端口占用情况(以 8080 端口为例)netstat -tulpn | grep 8080若端口已被占用,需更换宿主机映射端口(如-p 8081:8080) - 权限问题:
- 检查挂载目录权限是否足够:
ls -ld /opt/dify-web - 修复权限:
chmod -R 755 /opt/dify-web
- 检查挂载目录权限是否足够:
- 镜像损坏:
# 删除损坏镜像并重新拉取 docker rmi xxx.xuanyuan.run/langgenius/dify-web:latest docker pull xxx.xuanyuan.run/langgenius/dify-web:latest
应用访问异常
- 网络连通性:
- 检查服务器防火墙:
ufw status或firewall-cmd --list-ports - 测试端口可达性:
telnet 服务器 IP 端口
- 检查服务器防火墙:
- 配置错误:
- 检查环境变量是否正确设置:
docker inspect dify-web | grep Env - 对比官方文档中的配置示例,确保参数正确
- 检查环境变量是否正确设置:
- 依赖服务问题:
- DIFY-WEB 通常需要后端 API 服务支持,检查后端服务是否正常运行
- 验证 API 地址配置是否正确,可通过日志确认连接状态
性能问题
- 资源不足:
- 查看容器资源使用:
docker stats dify-web - 若 CPU/ 内存使用率接近限制,需调整
--memory和--cpus参数
- 查看容器资源使用:
- 日志分析:
- 查找错误或警告日志:
docker logs dify-web | grep -i error - 分析慢请求或超时记录,优化相关配置
- 查找错误或警告日志:
参考资源
官方资源
轩辕镜像资源
Docker 资源
总结
本文详细介绍了 DIFY-WEB 的 Docker 容器化部署流程,从环境准备、镜像拉取到容器配置、功能验证及生产环境优化,提供了一套完整的部署方案。通过容器化部署,用户可以快速搭建 DIFY-WEB 应用,同时保证环境一致性和部署效率。
关键要点:
- 使用轩辕一键脚本可快速完成 Docker 环境安装与加速配置
- 多段镜像名
langgenius/dify-web的正确拉取命令为docker pull xxx.xuanyuan.run/langgenius/dify-web:latest - 部署前需查阅官方文档获取正确的端口配置和环境变量要求
- 生产环境必须实现数据持久化、安全配置和资源监控
- 定期更新镜像和检查日志是保障系统稳定的关键
后续建议:
- 深入学习 DIFY 官方文档,掌握高级功能如自定义 LLM 模型集成、RAG 引擎优化
- 根据业务需求调整容器资源配置,实现性能与成本的平衡
- 探索 Docker Compose 或 Kubernetes 实现多容器应用的编排管理
- 建立完善的 CI/CD 流程,实现应用部署的自动化和标准化
通过遵循本文档的指导,用户可以高效、安全地部署 DIFY-WEB 应用,并为后续的应用扩展和维护奠定基础。







很久没更新了。
大佬,不知道过了这么久这个脚本还有没有在…
被投诉下线了。
点了那个链接?
被投诉下线了。
https://idea.hacks.t…