Linux离线部署Dify:Docker从镜像拉取打包到无网环境中部署


前言

设备: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 -ddocker 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博客
非常感谢前人们哈哈哈~
在这里插入图片描述

### Dify离线部署指南 #### 准备工作 为了顺利进行Dify离线部署,在Linux环境中需提前准备好必要的组件和文件。确保目标机器已安装好CentOS 7操作系统,并配置有稳定的络连接以便初次获所需资源。 对于Docker及其版本管理方面,确认已经正确安装了指定版本的Docker (26.0.2) 和 Docker Compose(v2.32.4)[^1]。如果尚未完成这一步骤,则应先按照官方文档指导在线安装这两个软件包;之后可以断开互联连接继续后续操作。 针对IPv6的支持情况,考虑到部分私有云或特定硬件可能仅支持此协议栈,因此建议测试并启用系统的IPv6功能以兼容更多场景下的正常运行[^1]。 #### 获镜像与依赖项 由于是离线环境,无法直接通过命令最新的容器镜像。所以需要预先在一个能够上的工作站上执行如下指令来下载所需的全部镜像: ```bash docker pull dify/dify:latest ``` 接着保存这些镜像到tarball档案中方便传输至无的目标主机: ```bash docker save -o /path/to/save/dify_latest.tar dify/dify:latest ``` 同样的方法也适用于其他任何额外需求的基础镜像(比如数据库)。完成后将生成的一个或多個`.tar` 文件拷贝给待部署服务器上的适当位置。 #### 部署过程 一旦所有必需的数据都被安全转移到目的端后,就可以开始真正的设置流程了。首要是加载之前准备好的镜像档回到本地仓库里: ```bash docker load --input=/path/to/copy/dify_latest.tar ``` 创建一个新的目录用于放置项目源码以及自定义配置文件等资料。进入该路径下初始化git库克隆官方提供的启动模板或是手动复制一份干净的应用结构到这里面去编辑调整参数设定满足实际业务逻辑的要求。 编写适合当前架构特点的 `docker-compose.yml` 文件描述整个集群的服务构成关系。注意修改其中涉及外部链接的部分使之指向内部地址而非默认公域名形式。例如更改API接口URL为localhost或者其他局域可达IP地址。 最后利用下面这条简单的命令即可一键式构建起完整的微服务平台实例: ```bash docker-compose up -d ``` 此时应该可以在浏览器输入http://<your_server_ip>:port 访问刚刚搭建成功的Dify界面了[^2]。 #### 测试验证 成功启动服务以后,推荐立即开展一系列基础的功能检测活动确保一切运作良好没有任何异常状况发生。可以通过向各个子模块发送请求的方式检查响应速度和服务质量指标是否达到预期标准。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值