Dify 私有化部署实战:Linux openEuler 环境下的 Docker Compose 安装指南
1. 环境准备与系统配置在开始Dify私有化部署之前我们需要确保openEuler系统环境满足基本要求。我去年在国产化项目中首次接触openEuler时发现这个华为推出的Linux发行版对ARM架构有很好的支持特别适合企业级应用部署。1.1 硬件需求检查建议使用物理服务器或云主机配置至少4核CPU实测2核也能运行但响应较慢8GB内存运行大模型建议16GB50GB可用磁盘空间Docker镜像和模型文件很占空间用以下命令检查硬件资源lscpu # 查看CPU信息 free -h # 查看内存 df -h # 查看磁盘空间1.2 系统依赖安装openEuler默认可能缺少部分依赖需要手动安装sudo dnf install -y git curl tar gcc make python3-pip sudo dnf groupinstall -y Development Tools特别要注意的是openEuler默认的Python版本可能较老建议通过pyenv安装Python 3.8curl https://pyenv.run | bash echo export PATH$HOME/.pyenv/bin:$PATH ~/.bashrc echo eval $(pyenv init --path) ~/.bashrc source ~/.bashrc pyenv install 3.8.12 pyenv global 3.8.122. Docker环境部署2.1 Docker引擎安装openEuler官方源提供了Docker CE版本但我在实际部署中发现社区版更稳定。推荐使用以下安装方式sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io启动Docker并设置开机自启sudo systemctl enable --now docker验证安装是否成功sudo docker run hello-world2.2 Docker Compose安装虽然openEuler源中有docker-compose但版本可能较旧。我推荐直接下载官方二进制文件sudo curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose验证版本docker-compose --version # 应该输出Docker Compose version v2.23.03. Dify部署实战3.1 获取Dify安装包推荐从GitHub直接克隆最新代码需要先安装gitgit clone https://github.com/langgenius/dify.git cd dify/docker如果网络环境特殊也可以下载离线包wget https://github.com/langgenius/dify/archive/refs/tags/1.5.1.tar.gz tar -xzvf dify-1.5.1.tar.gz cd dify-1.5.1/docker3.2 配置文件准备复制环境变量模板并修改关键配置cp .env.example .env用vim或nano编辑.env文件重点关注这些参数# 数据库配置 POSTGRES_PASSWORDyour_strong_password REDIS_PASSWORDyour_strong_password # 服务端口 SERVER_PORT80 API_PORT5001 # 时区设置 TZAsia/Shanghai3.3 启动Dify服务根据你的Docker Compose版本选择命令# 对于V2版本 docker compose up -d # 对于V1版本 docker-compose up -d第一次启动会下载所有依赖镜像耗时取决于网络速度。我在测试环境中这个过程大约用了20分钟。4. 部署后验证与排错4.1 服务状态检查使用以下命令查看容器运行状态docker-compose ps正常情况应该看到6个容器都是running状态Name Command State Ports ---------------------------------------------------------------------------------- dify-backend /entrypoint.sh uvicorn app ... Up (healthy) 0.0.0.0:5001-5001/tcp dify-frontend /docker-entrypoint.sh ngin ... Up (healthy) 0.0.0.0:80-80/tcp dify-postgres docker-entrypoint.sh postgres Up (healthy) 5432/tcp dify-redis docker-entrypoint.sh redis ... Up (healthy) 6379/tcp dify-worker /entrypoint.sh celery -A a ... Up (healthy) dify-websocket /entrypoint.sh daphne -b 0 ... Up (healthy) 0.0.0.0:9001-9001/tcp4.2 常见问题解决如果遇到容器启动失败可以查看日志定位问题docker-compose logs -f 服务名 # 如docker-compose logs -f backend我遇到过几个典型问题及解决方案端口冲突如果80端口被占用修改.env中的SERVER_PORT值磁盘空间不足清理旧镜像docker system prune -a内存不足增加swap空间或物理内存数据库初始化失败删除docker/volumes目录后重新启动4.3 访问验证在浏览器输入服务器IP地址应该能看到Dify的登录界面。首次使用需要点击注册创建管理员账号登录后进入控制台在设置 模型供应商中添加你的大模型API5. 生产环境优化建议5.1 性能调优配置修改docker-compose.yml中的资源限制services: backend: deploy: resources: limits: cpus: 2 memory: 4G ...5.2 数据持久化方案默认配置已经将数据库和日志挂载到本地但建议定期备份# 备份PostgreSQL数据 docker-compose exec postgres pg_dump -U postgres dify dify_backup.sql # 备份Redis数据 docker-compose exec redis redis-cli --rdb /data/dump.rdb docker cp dify-redis:/data/dump.rdb .5.3 安全加固措施修改默认端口编辑.env中的SERVER_PORT和API_PORT配置HTTPS在nginx配置中添加SSL证书设置防火墙规则sudo firewall-cmd --permanent --add-port80/tcp sudo firewall-cmd --permanent --add-port443/tcp sudo firewall-cmd --reload6. 进阶集成方案6.1 接入本地大模型如果你有本地部署的大模型如ChatGLM、LLaMA等可以在Dify中通过以下方式接入进入设置 模型供应商选择自定义API填写模型端点地址和API密钥6.2 定时任务配置Dify支持通过Celery配置定时任务比如定期清理临时文件# 在backend/app/tasks.py中添加 celery.task def cleanup_temp_files(): # 清理逻辑然后在管理界面设置执行周期。6.3 监控告警设置建议部署PrometheusGrafana监控方案配置示例# 在docker-compose.yml中添加 monitoring: image: prom/prometheus ports: - 9090:9090 volumes: - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml配套的prometheus.yml需要配置抓取Dify各个服务的metrics端点。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2437230.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!