RAGFlow纯内网环境使用Docker离线部署方法
目录
1 环境准备
1.1 互联网服务器Docker及 Docker Compose环境安装
Docker安装
Docker Compose安装
1.2 内网服务器docker环境安装
Docker下载
Docker Compose下载
Docker&Docker Compose安装
2 镜像下载
2.1 项目下载
2.2 镜像下载
2.3 镜像打包,将 Docker 镜像保存为 tar 包
3 内网服务器启动RAGFLOW
3.1 镜像传输
3.2 在离线服务器上加载 Docker 镜像
3.3 启动
根据公司的安全策略,生产环境中的服务器无法直接访问互联网,因此我们不能采用最直接的Docker镜像部署方法来安装RAGFLOW。然而,对于这种完全隔离的内网环境,我们参考了相关资料并制定了使用Docker实现离线部署的解决方案。以下是该过程的记录与总结。
在纯内网环境中部署RAGFlow的基本思路是:首先,在一台能够连接互联网的机器上拉取所需的Docker镜像,然后将这些镜像导入到目标服务器中。此过程需要准备一台环境相同且可联网的服务器,或者在云端临时开一台,用于下载所有必要的依赖包。完成之后,将这些下载好的资源复制到离线服务器上进行部署。为了确保这一过程顺利进行,需要注意以下几点:
- 确认两台服务器的操作系统和环境尽可能一致,以避免兼容性问题。
- 在下载依赖时,请仔细检查每项依赖的要求,并确保它们适用于目标服务器的配置。
- 使用可靠的传输方式将文件从联网机器转移到离线服务器,保证数据完整性和安全性。
通过上述步骤,我们可以有效地在内网环境中完成RAGFlow的部署工作。
1 环境准备
根据官方要求,部署ragflow需要以下配置,请确保生产环境服务器配置已经达到要求:
- CPU ≥ 4 cores
- RAM ≥ 16 GB
- Disk ≥ 50 GB
- Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1
准备一个与目标部署服务器操作系统相似的联网服务器,这里使用centos7操作系统的服务器,其他操作系统参考方式相似。
1.1 互联网服务器Docker及 Docker Compose环境安装
首先在联网环境的服务器上安装docker环境,包括Docker和Docker Compose,根据官方要求版本:Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1
Docker安装
(1) 安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
(2) 安装最新版本的 Docker CE(社区版):
yum install docker-ce docker-ce-cli containerd.io
(3) 启动 Docker 服务,并设置为开机自启:
运行以下命令验证 Docker 是否正常工作:
sudo systemctl start docker
sudo systemctl enable docker
(4) 验证 Docker 是否安装成功
运行以下命令验证 Docker 是否正常工作:
sudo docker --version
如果安装成功,会显示类似以下输出:
Docker version 20.10.x, build xxxxx
Docker Compose安装
(1) 下载 Docker Compose 二进制文件
从 Docker 官方 GitHub 仓库下载最新版本的 Docker Compose(以 v2.21.0 为例,可根据需要替换为最新版本):
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
(2) 赋予执行权限
为下载的二进制文件赋予可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
(3) 验证 Docker Compose 是否安装成功
检查 Docker Compose 的版本:
docker-compose --version
如果安装成功,会显示类似以下输出:
docker-compose version 2.21.0
1.2 内网服务器docker环境安装
内网服务器没有互联网环境,所以就需要借助联网的机器,在联网机器上,按照以下步骤下载 Docker 的 RPM 包及其依赖。
Docker下载
在互利网机器上使用 yumdownloader
工具下载Docker RPM
yum install -y yum-utils
yumdownloader --destdir=/home/docker-packages docker-ce docker-ce-cli containerd.io
Docker Compose下载
可以在联网服务器上直接使用命令下载
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
也可以直接到git下载对应的版本
https://github.com/docker/compose
Docker&Docker Compose安装
使用移动存储将联网下载的安装包拷贝到内网服务器上进行安装,安装完成后参考第1节内容,使用命令验证是否安装成功,若成功可直接进行下一步。
2 镜像下载
2.1 项目下载
使用联网服务器从RAGFlow的git仓库下载项目:
https://github.com/infiniflow/ragflow
2.2 镜像下载
下载后导航路径到项目的docker路径下,如果是CPU环境运行,执行一下命令:
docker compose -f docker-compose.yml up -d
如果是GPU的服务器使用可以执行以下命令:
docker compose -f docker-compose-gpu.yml up -d
记住以下镜像,一会打包需要
这里提供一下我用的镜像仓库
{
"registry-mirrors": ["https://hub.urlsa.us.kg","https://hub.haod.eu.org","http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn","https://0dj0t5fb.mirror.aliyuncs.com","https://6kx4zyno.mirror.aliyuncs.com","http://hub.chxza.eu.org","https://registry.docker-cn.com"]
}
2.3 镜像打包,将 Docker 镜像保存为 tar 包
下载完成后,应该包含以下镜像
需要使用 docker save 命令将RAGFlow依赖的镜像保存为单独的 tar 包。命令格式参考如下:
docker save -o [镜像名称].tar [镜像名称]:[标签]
如:
docker save -o images.tar infiniflow/ragflow:v0.15.10slim redis:7.2.4 quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z docker.elastic.co/elasticsearch/elasticsearch:8.11.3 mysql:8.0.39 valkey/valkey:8
也可以根据需要单独打包,参考如下,请根据实际下载的镜像名称和标签进行打包:
docker save -o es.tar docker.elastic.co/elasticsearch/elasticsearch:8.11.3
docker save -o mysql.tar mysql:8.0.39
docker save -o minio.tar quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
docker save -o redis.tar redis:7.2.4
docker save -o ragflow.tar infiniflow/ragflow:v0.15.1-slim
docker save -o valkey.tar valkey/valkey:8
3 内网服务器启动RAGFLOW
3.1 镜像传输
将打的tar 包复制到内网离线服务器;
3.2 在离线服务器上加载 Docker 镜像
由于已经在内网服务器安装好了docker镜像,直接使用 docker load 命令从 tar 包中加载 Docker 镜像
格式为:docker load -i [镜像名称].tar
如:
docker load -i images.tar
加载完成后可查看到打包前的images,使用以下命令查看:
docker images
3.3 启动
将项目Docker目录下的以下文件拷贝到内网服务器用于启动及配置RAGFlow,然后在内网服务器上导航到含有以下文件的目录,执行以下命令启动RAGFlow:
docker-compose -f docker-compose.yml up -d