Linux离线部署Dify:Docker从镜像拉取打包到无网环境中部署
文章目录
- 前言
- 一、在线环境操作
- 1. 获取dify项目(使用魔法)
- 2.进入项目中docker目录
- 3.镜像拉取
- 4.查看镜像
- 5.镜像打包
- 6.镜像(项目)上传
- 二、离线环境操作
- 1.镜像导入
- 2.启动服务
- 3.验证容器启动状态
- 4.访问服务
- 三、部分参考链接
前言
设备:Ubuntu GPU服务器(离线)、Windows10(联网:我的本机电脑)
工具:putty(操作离线服务器)、WinSCP(文件上传)
前置条件:两台设备均安装Docker
# 验证Docker环境
docker --version && docker-compose --version
在线环境安装git(用于dify项目拉取,也可以直接下载项目压缩包)
一、在线环境操作
1. 获取dify项目(使用魔法)
拉取项目到目标目录
git clone https://github.com/langgenius/dify.git
2.进入项目中docker目录
Win+R
输入cmd
打开命令行,切换到项目存放目录(我的在I盘)
cd dify/docker
3.镜像拉取
需要等待一段时间,会有拉取进度;如果没有登录docker可能会报错,我就报错了,采用docker login
命令输入用户名、密码再执行以下命令即可。(用户名/密码一定要记住)
docker-compose pull # 仅拉取镜像不启动容器
4.查看镜像
docker iamges
我这边拉取下来一共9个镜像
5.镜像打包
可以单个单独打包
再上传,可以多个镜像统一打包
(镜像间空格分隔)上传,我这边采取的是统一打包。
打包命令:docker save -o XXX.tar REPOSITORY:TAG
(XXX包名自定义,REPOSITORY、TAG通过docker iamges
查看镜像获取)
我的9个镜像都打包了,参考命令:
docker save -o dify-images.tar langgenius/dify-api:1.1.3 langgenius/dify-api:1.1.3 langgenius/dify-web:1.1.3 postgres:15-alpine redis:6-alpine langgenius/dify-sandbox:0.2.11 langgenius/dify-plugin-daemon:0.0.6-local ubuntu/squid:latest semitechnologies/weaviate:1.19.0 nginx:latest
6.镜像(项目)上传
搜索了很多dify离线部署博客都是让上传.tar
打包后的镜像文件及docker-compose配置文件
,但是尝试了这些方法都存在一个问题:镜像正常加载到离线环境,但是使用docker-compose up -d启动服务时就会报错,AI了一下错误提示可能是配置文件有问题,找了一个下午资料、修改配置文件(也不知道怎么修改,参考很少)也没解决该问题,资料的方案基本都是让上传打包的镜像及配置文件,加载镜像到docker再启动容器,后面找到一篇博客是将整个项目上传到离线环境
的,再执行docker-compose up -d
时成功了!!非常感谢那位博主!er)
二、离线环境操作
1.镜像导入
进入项目的docker目录,使用命令docker load -i XXX.tar
将镜像导入docker,使用docker iamges
验证镜像是否导入成功。
# 镜像导入
docker load -i dify-images.tar
# 验证镜像
docker iamges
多出的镜像是之前导入的webUI(不稳定,效果不太好,所以来换成dify了)
2.启动服务
启动容器docker-compose up -d
或docker compose up -d
,具体用哪个要看你的服务器上docker、Docker Compose版本,可以都试一下。
docker-compose up -d
可喜可贺,成功了!(在这个坑待太久了!o(╥﹏╥)o)
3.验证容器启动状态
docker ps
容器已启动!
4.访问服务
访问http://ip:80
(默认的是80端口,以上容器状态查看时可以看端口)
好了,到此告一段落了,后面配置配完再记坑O(∩_∩)O哈哈~。
三、部分参考链接
1.LLM - Docker离线部署Dify:从镜像打包到无网环境部署_dify 离线部署-CSDN博客
2.在离线服务器上基于源代码部署Dify以及基于Docker部署运行Dify的实践 - 知乎
3.Dify 外网打包镜像到服务端无网安装指南(离线安装Dity-0.15.3)_离线安装dify-CSDN博客
非常感谢前人们哈哈哈~