网站系统环境的搭建,高校两学一做专题网站,网站查看空间商,做网站dreamwa文章目录 1、克隆 Dify 源代码至本地环境2、加速Dify镜像文件下载3、启动 Dify4、访问 Dify5、更新 Dify6、常见问题及解决方案#xff08;1#xff09;容器restarting#xff08;2#xff09;日志文件上限#xff08;3#xff09;重置管理员密码#xff08;4#xff0… 文章目录 1、克隆 Dify 源代码至本地环境2、加速Dify镜像文件下载3、启动 Dify4、访问 Dify5、更新 Dify6、常见问题及解决方案1容器restarting2日志文件上限3重置管理员密码4修改页面端口 Dify 是一个基于 Docker 的工作流管理工具旨在简化机器学习和数据科学领域的多步骤工作流。它通过容器化每个步骤确保工作流的可复现性和环境一致性。Dify 支持自动化执行、日志记录和结果管理适用于数据处理、模型训练和部署等场景。 Dify 主要支持以下三种模式 Agent 模式Dify 作为一个代理通过配置和管理多种工作流进行任务调度和执行。 知识库模式用于存储和管理工作流相关的知识、数据库和模型方便复用和共享。 工作流模式Dify 通过定义工作流的各个步骤自动化执行数据处理、模型训练、测试等任务确保工作流的一致性和高效性。
安装 Dify 之前, 请确保机器已满足最低安装要求 CPU 2 Core RAM 4 GiB
1、克隆 Dify 源代码至本地环境
git clone https://github.com/langgenius/dify.git也可以手动下载到本地https://github.com/langgenius/dify/archive/refs/heads/main.zip解压后移动到服务器上。
2、加速Dify镜像文件下载
详情见https://github.com/imashen/docker-aio/tree/main 安装脚本使用curl -fsSL https://docker.13140521.xyz/install | bash -s docker --mirror Aliyun Docker加速源使用 编辑Docker配置文件 打开Docker的配置文件通常位于/etc/docker/daemon.jsonsudo vim /etc/docker/daemon.json 添加或修改镜像源 添加或修改配置文件中的registry-mirrors字段
{registry-mirrors: [https://docker.13140521.xyz]
}重启Docker服务: 保存配置文件并重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker3、启动 Dify
进入 Dify 源代码的 Docker 目录cd dify/docker 复制环境配置文件cp .env.example .env 启动 Docker 容器 根据你系统上的 Docker Compose 版本选择合适的命令来启动容器。你可以通过docker compose version命令检查版本详细说明请参考 Docker 官方文档 如果版本是 Docker Compose V2使用以下命令
docker compose up -d如果版本是 Docker Compose V1使用以下命令
docker-compose up -d运行命令后你应该会看到类似以下的输出显示所有容器的状态和端口映射
[] Running 11/11✔ Network docker_ssrf_proxy_network Created 0.1s ✔ Network docker_default Created 0.0s ✔ Container docker_redis_1 Started 2.4s ✔ Container docker_ssrf_proxy_1 Started 2.8s ✔ Container docker_sandbox_1 Started 2.7s ✔ Container docker_web_1 Started 2.7s ✔ Container docker_weaviate_1 Started 2.4s ✔ Container docker_db_1 Started 2.7s ✔ Container docker_api_1 Started 6.5s ✔ Container docker_worker_1 Started 6.4s ✔ Container docker_nginx_1 Started 7.1s最后检查是否所有容器都正常运行
docker compose psNAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker_api_1 langgenius/dify-api:0.6.13 /bin/bash /entrypoi… api About a minute ago Up About a minute 5001/tcp
docker_db_1 postgres:15-alpine docker-entrypoint.s… db About a minute ago Up About a minute (healthy) 5432/tcp
docker_nginx_1 nginx:latest sh -c cp /docker-e… nginx About a minute ago Up About a minute 0.0.0.0:80-80/tcp, :::80-80/tcp, 0.0.0.0:443-443/tcp, :::443-443/tcp
docker_redis_1 redis:6-alpine docker-entrypoint.s… redis About a minute ago Up About a minute (healthy) 6379/tcp
docker_sandbox_1 langgenius/dify-sandbox:0.2.1 /main sandbox About a minute ago Up About a minute
docker_ssrf_proxy_1 ubuntu/squid:latest sh -c cp /docker-e… ssrf_proxy About a minute ago Up About a minute 3128/tcp
docker_weaviate_1 semitechnologies/weaviate:1.19.0 /bin/weaviate --hos… weaviate About a minute ago Up About a minute
docker_web_1 langgenius/dify-web:0.6.13 /bin/sh ./entrypoin… web About a minute ago Up About a minute 3000/tcp
docker_worker_1 langgenius/dify-api:0.6.13 /bin/bash /entrypoi… worker 4、访问 Dify
你可以先前往管理员初始化页面设置管理员账户
本地环境
http://localhost/install服务器环境
http://your_server_ip/installDify 主页面
本地环境
http://localhost服务器环境
http://your_server_ip5、更新 Dify
进入 dify 源代码的 docker 目录按顺序执行以下命令
# 注意以下方法只针对git clone方式下载的小伙伴
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d同步环境变量配置 (重要) 如果 .env.example 文件有更新请务必同步修改你本地的 .env 文件。
检查 .env 文件中的所有配置项确保它们与你的实际运行环境相匹配。你可能需要将 .env.example 中的新变量添加到 .env 文件中并更新已更改的任何值。 如果是通过下载dify压缩文件到本地的小伙伴请重新下载最新的dify压缩文件并移动到服务器覆盖当前dify目录。接着进入 api 目录下执行以下命令将数据库结构迁移至最新版本flask db upgrade。接着运行docker-compose up -d即可。
6、常见问题及解决方案
1容器restarting
通过docker compose ps如果出现个别容器一直restarting使用docker logs -f查看容器日志如果日志中出现如下错误
- OpenBLAS blas_thread_init: pthread_create failed for thread 47 of 48: Operation not permittedOpenBLAS blas_thread_init: RLIMIT_NPROC -1 current, -1 max修改docker-compose.yaml文件在每个镜像下增加privileged: true # 启用特权模式如
api:image: langgenius/dify-api:0.13.1restart: alwaysenvironment:# Use the shared environment variables.: *shared-api-worker-env# Startup mode, api starts the API server.MODE: apidepends_on:- db- redisvolumes:# Mount the storage directory to the container, for storing user files.- ./volumes/app/storage:/app/api/storagenetworks:- ssrf_proxy_network- defaultprivileged: true通过docker-compose down停止所有正在运行的容器然后docker-compose up -d重新启动所有dify镜像即可解决。
2日志文件上限
当前docker日志文件没有设置上限会导致日志文件占用内存持续增长可通过以下方式设置单个日志文件的上限
api:image: langgenius/dify-api:0.13.1restart: alwaysenvironment:# Use the shared environment variables.: *shared-api-worker-env# Startup mode, api starts the API server.MODE: apidepends_on:- db- redisvolumes:# Mount the storage directory to the container, for storing user files.- ./volumes/app/storage:/app/api/storagenetworks:- ssrf_proxy_network- defaultprivileged: truelogging:driver: json-fileoptions:max-size: 10m # 每个日志文件最大 10MBmax-file: 3 3重置管理员密码
如果你通过 Docker Compose 部署你可以运行以下 Docker Compose 命令行重置密码。
docker exec -it docker_api_1 flask reset-password请按照提示输入邮箱地址和新密码例如
difymy-pc:~/hello/dify/docker$ docker compose up -d
[] Running 9/9✔ Container docker_web_1 Started 0.1s ✔ Container docker_sandbox_1 Started 0.1s ✔ Container docker_db_1 Started 0.1s ✔ Container docker_redis_1 Started 0.1s ✔ Container docker_weaviate_1 Started 0.1s ✔ Container docker_ssrf_proxy_1 Started 0.1s ✔ Container docker_api_1 Started 0.1s ✔ Container docker_worker_1 Started 0.1s ✔ Container docker_nginx_1 Started 0.1s
difymy-pc:~/hello/dify/docker$ docker exec -it docker-api-1 flask reset-password
None of PyTorch, TensorFlow 2.0, or Flax have been found. Models wont be available and only tokenizers, configuration and file/data utilities can be used.
sagemaker.config INFO - Not applying SDK defaults from location: /etc/xdg/sagemaker/config.yaml
sagemaker.config INFO - Not applying SDK defaults from location: /root/.config/sagemaker/config.yaml
Email: hellodify.ai
New password: newpassword4567
Password confirm: newpassword4567
Password reset successfully.4修改页面端口
如果你使用 Docker Compose 部署你可以通过修改.env配置来自定义 Dify 的访问端口。
你需要修改 Nginx 相关配置
EXPOSE_NGINX_PORT80
EXPOSE_NGINX_SSL_PORT443