在一台不能联网的服务器上本地部署dify
在一台搭载CentOS 7 的linux系统通过docker compose安装dify;
既然不能联网下载,所以相关资料都要通过U盘进行拷贝,需要拷贝的有 dify相关资源 和 镜像文件。
1.拷贝dify相关资源(在github上面下载好,在difydocker目录下,将.env.example文件改名为.env)到服务器目录 /root下;
注:在github上进行dify下载时是下载zip,下载后解压缩。
2.打包镜像文件。
在联网的windows部署本地dify时,运行 docker compose up -d 命令,
docker会联网下载相关镜像。下载完成后会进行启动。
在cmd输入docker images命令,即可显示下载的镜像,如图所示:
笔者的电脑上只用docker部署过dify,所以这些镜像全都与dify相关。缺一项都不可(因为笔者目的同本文标题一样,在CentOS 7 Linux系统部署dify,所以一开始自以为上图中的ubuntu/squid镜像 与在CentOS 7 Linux系统部署dify无关,所以没有导入到服务器,然后发现不行。所以以上镜像都要导入,如何导入下文会详细介绍。)
想要把这些镜像导入到服务器,首先要进行打包(通过docker save命令将镜像打包成.tar文件),拷贝到U盘。方便起见,将这些镜像逐个打包到
E: 路径,也可统一打包。文章最后会给出cmd下的逐个打包到E: 路径,若想统一打包也可问问AI。
3.导入镜像文件。
通过docker load 命令在服务器将拷贝过来的.tar文件进行导入。
通过docker load --input xxx.tar命令(xxx.tar是具体文件名称)导入。
4.尝试启动dify;
cd到dify/docker目录下,输入
docker compose up -d 命令尝试启动。如果DIFY下载好,docker-db-1 无法正常 启动,请参考下文
DIFY下载好,docker-db-1 无法正常 启动,总是重启 Restarting_container docker-db-1 is unhealthy-CSDN博客
注意:链接文章指导读者如何修改docker compose.yaml文件内容,可以在vscode上打开并进行修改,注意要修改两处内容,一处在代码中间一处在结尾。可以Ctrl+F进行查找;修改完成后记得保存(vscode左上角->文件->保存)
笔者在此项目 用一台不能联网的电脑 通过一款名为Finalshall的软件完成电脑和服务器的连接,将u盘插入电脑,通过Finalshall将需要的文件上传到服务器。Finalshall还可以链接本地VMware虚拟机,从而更方便地对虚拟机进行操作。这一方面的相关内容可以参考笔者的另一篇文章。
VMware中ubuntu没有联网的一种解决办法,用FinalShell连接虚拟机的方法,使用wsl2的方法_finallshell怎么连接虚拟机-CSDN博客
docker save
命令用于将 Docker 镜像保存为 tar
文件,基本语法:
docker save -o E: [自定义文件名].tar [镜像仓库名:标签]
- 处理
langgenius/dify-web:1.4.1
docker save -o E: langgenius_dify-web_1.4.1.tar langgenius/dify-web:1.4.1
- 处理
langgenius/dify-api:1.4.1
docker save -o E: langgenius_dify-api_1.4.1.tar langgenius/dify-api:1.4.1
- 处理
langgenius/dify-plugin-daemon:0.1.1-local
docker save -o E: langgenius_dify-plugin-daemon_0.1.1-local.tar langgenius/dify-plugin-daemon:0.1.1-local
- 处理
postgres:15-alpine
docker save -o E: postgres_15-alpine.tar postgres:15-alpine
- 处理
langgenius/dify-sandbox:0.2.12
docker save -o E: langgenius_dify-sandbox_0.2.12.tar langgenius/dify-sandbox:0.2.12
- 处理
redis:6-alpine
docker save -o E:
edis_6-alpine.tar redis:6-alpine
- 处理
nginx:latest
docker save -o E:
ginx_latest.tar nginx:latest
- 处理
ubuntu/squid:latest
docker save -o E: ubuntu_squid_latest.tar ubuntu/squid:latest
- 处理
semitechnologies/weaviate:1.19.0
docker save -o E: semitechnologies_weaviate_1.19.0.tar semitechnologies/weaviate:1.19.0