Linux如何本地部署dify-实操步骤记录-避坑

📅 发布时间:2026/7/17 9:41:19 👁️ 浏览次数:
Linux如何本地部署dify-实操步骤记录-避坑
Dify 部署指南一、环境准备与清理确保系统环境干净避免旧配置干扰# 1. 清理旧的Dify目录如存在 cd ~ rm -rf dify # 2. 检查Docker环境 docker --version二、配置国内镜像加速2.1 Docker镜像加速设置# 配置Docker镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://docker.xuanyuan.me, https://docker.1ms.run, https://docker.mirrors.ustc.edu.cn ] } EOF # 重启Docker服务 sudo systemctl daemon-reload sudo systemctl restart docker # 验证配置 docker info | grep -A 5 Registry Mirrors2.2 使用Gitee镜像克隆代码git clone https://gitee.com/dify_ai/dify.git cd dify/docker三、环境变量配置# 复制并编辑环境变量文件 cp .env.example .env vim .env关键配置项修改建议# 端口配置避免冲突 EXPOSE_NGINX_PORT8080 EXPOSE_NGINX_SSL_PORT8443 # 服务URL配置替换实际IP CONSOLE_API_URLhttp://服务器IP:8080/api CONSOLE_WEB_URLhttp://服务器IP:8080 APP_API_URLhttp://服务器IP:8080/api APP_WEB_URLhttp://服务器IP:8080 FILES_URLhttp://服务器IP:8080 # 加速配置 PIP_MIRROR_URLhttps://pypi.tuna.tsinghua.edu.cn/simple PLUGIN_PYTHON_ENV_INIT_TIMEOUT360四、启动服务# 启动容器 docker compose up -d # 等待初始化完成 sleep 30 # 检查服务状态 docker compose ps正常状态应显示api/web/nginx/redis/db_postgres等容器状态为Upinit_permissions-1容器状态为Exited正常初始化状态五、服务验证# 1. 检查web服务日志 docker compose logs web --tail 50 # 2. 测试web服务连通性 docker exec docker-web-1 wget -q -O- http://localhost:3000 || echo web服务异常 # 3. 测试nginx到web的连通性 docker exec docker-nginx-1 curl -s http://web:3000 || echo nginx连接web失败 # 4. 检查nginx日志 docker compose logs nginx --tail 20六、常见问题处理问题1web服务启动失败# 重建web服务 docker compose stop web docker compose rm -f web docker compose up -d --build web docker compose logs -f web问题2nginx 502错误# 检查后端服务状态 docker compose ps api web # 查看api日志 docker compose logs api --tail 20 # 重启nginx docker compose restart nginx问题3端口冲突# 检查端口占用情况 sudo lsof -i :80 sudo lsof -i :8080 # 修改.env中的端口配置 vim .env七、访问平台访问地址http://服务器IP:8080端口需与配置一致首次访问将引导创建管理员账号登录后可开始配置模型和创建应用八、运维命令# 查看服务状态 docker compose ps # 查看实时日志 docker compose logs -f [服务名] # 停止服务 docker compose down # 重启服务 docker compose restart # 更新版本 git pull docker compose up -d --build九、避坑全部执行完之后浏览器打开dify会发现页面无法正常打开原因通过docker-compose ps 执行后发现这里面 docker-plugin_daemon-1 一直在重启如下图执行如下命令查看日志cd dify/docker docker compose logs plugin_daemon --tail 50日志如下图这时我们发现这个服务连接不上内置数据库[error] failed to initialize database, got error failed to connect to hostdb_postgres userpostgres databasedify_plugin: server error (FATAL: database dify_plugin does not exist (SQLSTATE 3D000))这个错误信息显示plugin_daemon仍然在尝试连接hostdb_postgres但我们的数据库容器实际名称是docker-db_postgres-1。这是配置问题快速修复脚本cd ~/dify/docker echo 步骤1: 停止所有服务 docker compose down echo 步骤2: 确保 .env 配置正确 cat .env.tmp EOF PLUGIN_DB_HOSTdb_postgres PLUGIN_DB_PORT5432 PLUGIN_DB_USERpostgres PLUGIN_DB_PASSWORDpostgres PLUGIN_DB_NAMEdify_plugin EOF # 合并到现有 .env cat .env.tmp .env rm .env.tmp echo 步骤3: 启动所有服务 docker compose up -d echo 步骤4: 等待数据库启动 sleep 20 echo 步骤5: 创建数据库 docker exec -it docker-db_postgres-1 psql -U postgres -c CREATE DATABASE dify_plugin; 2/dev/null || echo 数据库可能已存在 echo 步骤6: 查看最终状态 docker compose ps echo 步骤7: 查看 plugin_daemon 日志 docker compose logs plugin_daemon --tail 30 echo ✅ 现在访问 http://你的IP/现在打开后就可以正常访问了部署要点总结使用国内镜像加速下载正确配置端口避免冲突首次启动需耐心等待初始化通过日志快速定位问题如遇其他问题请提供具体错误日志以便分析解决。