尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Linux 部署轻量化级Docker+Dify本地部署

Linux 部署轻量化级Docker+Dify本地部署 一、docker二进制包下载官网下载地址访问官方下载页面 https://download.docker.com/linux/static/stable/x86_64/下载一个稳定版本我下的是docker-24.0.7.tgz。然后上传到linux中。文件大小为 69.8 MB这是正常的 Docker 二进制包大小二、解压2.1 只有几个文件很少。[aaahadoop102 docker]$sudotar-zxvfdocker-24.0.7.tgz docker/ docker/docker docker/docker-init docker/dockerd docker/runc docker/ctr docker/containerd-shim-runc-v2 docker/containerd docker/docker-proxy2.2 迁移到/opt/module下[aaahadoop102 docker]$mvdocker/opt/module/2.3 创建软链接让系统识别 Docker 命令这样以后 docker 命令就能全局使用了。[aaahadoop102 docker]$ sudo ln-s/opt/module/docker/docker/usr/bin/docker[aaahadoop102 docker]$ sudo ln-s/opt/module/docker/dockerd/usr/bin/dockerd[aaahadoop102 docker]$ sudo ln-s/opt/module/docker/containerd/usr/bin/containerd[aaahadoop102 docker]$ sudo ln-s/opt/module/docker/runc/usr/bin/runc2.4 创建 Docker 的 systemd 服务文件[aaahadoop102 docker]$sudovim/etc/systemd/system/docker.service[Unit]DescriptionDocker Application Container EngineDocumentationhttps://docs.docker.comAfternetwork-online.target firewalld.serviceWantsnetwork-online.target[Service]TypenotifyExecStart/opt/module/docker/dockerdExecReload/bin/kill-sHUP$MAINPIDLimitNOFILEinfinityLimitNPROCinfinityLimitCOREinfinityTasksMaxinfinityTimeoutStartSec0DelegateyesKillModeprocessRestarton-failureStartLimitBurst3StartLimitInterval60s[Install]WantedBymulti-user.target三、启动Docker首先进入到docker解压后的目录下# 重新加载 systemd 配置sudosystemctl daemon-reload# 启动 Dockersudosystemctl startdocker# 设置开机自启sudosystemctlenabledocker# 查看运行状态sudosystemctl statusdockerDocker 启动成功。3.2 验证[aaahadoop102 docker]$sudodocker--versionDocker version24.0.7, build afdd53b四、安装 Docker Compose独立二进制4.1 下载并迁移到/opt/module/docker 里面并改名为docker-compose[aaahadoop102 docker]$wgethttps://github.com/docker/compose/releases/download/v5.4.0/docker-compose-linux-x86_64[aaahadoop102 docker]$mvdocker-compose-linux-x86_64 /opt/module/docker/docker-compose[aaahadoop102 docker]$sudochmodxdocker-compose4.2 添加软连接[aaahadoop102 docker]$sudoln-s/opt/module/docker/docker-compose /usr/local/bin/docker-compose4.3 验证[aaahadoop102 docker]$docker-compose--versionDocker Compose version v5.4.0五、部署轻量级Dify5.1 Dify 下载地址Dify下载地址5.2 上传到Linux解压,并且移到/opt/module目录下[aaahadoop102 docker]$unzipdify-main.zip[aaahadoop102 docker]$mvdify-main /opt/module/dify5.3 进入到Dify里面的docker[aaahadoop102 docker]$cd/opt/module/dify/docker5.4 复制环境变量配置文件并修改参数轻量级可选[aaahadoop102 docker]$cp.env.example .env[aaahadoop102 docker]$grep-iMAX_WORKERS/opt/module/dify/docker/.envCELERY_MAX_WORKERS[aaahadoop102 docker]$grep-iVECTOR_STORE/opt/module/dify/docker/.envVECTOR_STOREweaviateCOMPOSE_PROFILES${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration[aaahadoop102 docker]$grep-iREDIS_MAXMEMORY/opt/module/dify/docker/.env[aaahadoop102 docker]$vim.env修改以下参数# 限制 Worker 数量减少内存占用 MAX_WORKERS1 # 使用轻量级向量数据库Chroma 比 Weaviate 更轻量 VECTOR_STOREchroma # 限制 Redis 内存 REDIS_MAXMEMORY256mb5.5 将用户添加到docker组里去先创建docker组再添加。测试已经存在。可能需要关闭会话重新连接新会话。[aaahadoop102 docker]$sudogroupadddocker[aaahadoop102 docker]$sudousermod-aGdocker$USER[aaahadoop102 docker]$groupsaaa wheeldocker要修改以下/var/run/docker.sock 的组权限[aaahadoop102 docker]$sudochownroot:docker /var/run/docker.sock[aaahadoop102 docker]$sudochmod660/var/run/docker.sock[aaahadoop102 docker]$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES5.6 进入 Dify 目录并启动拉取先试着拉一个看看[aaahadoop102 docker]$dockerpull docker.1ms.run/nginx:latest latest: Pulling from nginx 26c307b5e35a: Pull complete 746b934a8960: Pull complete 5508f6432d3e: Pull complete 5d480233f531: Pull complete f530c3e421fc: Pull complete 128fcc7b23b0: Pull complete 7eb55399d6de: Pull complete Digest: sha256:8f029c543423e3eac6b08254718bc31eb75633b1e448026b6616927baa7d4bfe Status: Downloaded newer imagefordocker.1ms.run/nginx:latest docker.1ms.run/nginx:latest成功。后面拉核心的就行[aaahadoop102 docker]$docker-composeup-dapi worker web db_postgres redis sandbox local_sandbox plugin_daemon agent_backend nginx因为拉取的国外网站的资源很慢。我这里提供另一种辅助拉取的方法。一个dget工具是go语言写的。dget下载地址是这个下载完之后直接将它放在单独的文件夹内然后从那个文件夹进入到cmd里面拉取命令如下dify-agent-local-sandbox:1.16.1D:\software\dgetdget.exedocker.1ms.run/langgenius/dify-agent-local-sandbox:1.16.1然后在传到Linux上用docker重新加载就行。[aaahadoop102 docker]$dockerload-idify-agent-backend_1.16.1-img.tar.gz因为一个手动离线拉取一个是docker自己拉取导致前缀不一样需要改成一样的。这里我是将docker.1ms.run/去掉因为它是一个加速器官方标准里面是没有的。修改如下[aaahadoop102 docker]$dockertag docker.1ms.run/redis:6-alpine redis:6-alpine[aaahadoop102 docker]$dockerimages六、其他问题6.1 docker-proxy 这个二进制文件没有正确安装或没有在 PATH 中[aaahadoop102 docker]$sudoln-s/opt/module/docker/docker-proxy /usr/bin/docker-proxy6.2 宿主机的 80 端口已被占用1先修改docker-compose.yaml 中 nginx 部分的内容ports:-${EXPOSE_NGINX_PORT:-8080}:${NGINX_PORT:-8080}-${EXPOSE_NGINX_PORT:-443}:${NGINX_SSL_PORT:-443}2再改.env里的内容[aaahadoop102 docker]$grepEXPOSE_NGINX_PORT /opt/module/dify/docker/.envEXPOSE_NGINX_PORT8080docker-composedown nginxdocker-composeup-dapi worker web db_postgres redis sandbox local_sandbox plugin_daemon agent_backend nginx记住启动的时候一定要只启动相关的核心服务如果是一键启动它会将你之前没下载的服务也拉取那样会得不偿失。共15个核心启动命令如下[aaahadoop102 docker]$docker-composeup-dapi worker web db_postgres redis sandbox local_sandbox plugin_daemon agent_backend nginx6.3 登录difyhttp://hadoop102:8080/install
返回列表