RAGFlow如何迁移到新机器
背景:在实际开发过程,项目环境有开发环境,测试环境,生产环境;如何将开发环境中的RAGFlow迁移到测试环境,甚至上到生产环境呢
如何完整的将RAGFlow项目迁移到新机器呢?
迁移到新机器时,直接把项目拷贝过来还不可以
要把每个容器的数据也拷贝过去(dify是直接放在项目下的,很方便)
1.先查看一个mysql容器的数据放在哪里(ragflow-mysql:容器名)
docker inspect ragflow-mysql | grep Mounts -A 10
命令返回结果如下:
"Mounts": [
{
"Type": "volume",
"Source": "ragflow_mysql_data",
"Target": "/var/lib/mysql",
"VolumeOptions": {}
}
],
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
--
"Mounts": [
{
"Type": "bind",
"Source": "/home/scia/ragflow/docker/init.sql",
"Destination": "/data/application/init.sql",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "volume",
2.实际物理存储路径(docker管理卷:ragflow_mysql_data)
docker volume inspect ragflow_mysql_data | grep Mountpoint
命令返回的结果
"Mountpoint": "/var/lib/docker/volumes/ragflow_mysql_data/_data",
3.进入到 /var/lib/docker/volumes/
ll
命令返回的结果
drwx-----x 3 root root 4096 Mar 11 14:25 ragflow_esdata01/
drwx-----x 3 root root 4096 Mar 11 14:25 ragflow_minio_data/
drwx-----x 3 root root 4096 Mar 11 14:25 ragflow_mysql_data/
drwx-----x 3 root root 4096 Mar 11 14:25 ragflow_redis_data/
把这些都打包了,依次执行以下命令
tar -cvf ragflow_esdata01.tar
tar -cvf ragflow_minio_data.tar
tar -cvf ragflow_mysql_data.tar
tar -cvf ragflow_redis_data.tar
4.将原项目也进行打包
tar -cvf ragflow.tar
5.将打包后的tar文件全部上传到新机器,并解压
tar -xvf 包名.tar
6.启动项目
docker compose -f docker-compose.yml -p ragflow up -d
查看服务日志
docker logs -f ragflow-server
这样就完整将项目迁移过去了