云计算百科
云计算领域专业知识百科平台

Dify+华为昇腾服务器ARM架构部署环境准备

一、问题背景

(1) 内网服务器与互联网物理隔离

(2) 华为昇腾服务器、麒麟sp2操作系统、aarch64、Linux环境、Docker 26.0.0

(3) 自己可以连网的笔记本属于AMD架构,拉取的镜像没有办法直接移植。

二、解决方案:

1、拉取对应arm64架构的镜像文件并导入内网服务器

(1)拉取arm64架构对应的镜像

#拉取对应arm64架构版本的镜像
docker pull –platform linux/arm64 <image name>

(2)确认镜像文件架构

docker inspect <imageID> | grep Architecture
确认好该image是arm64架构

(3)打包指定镜像到指定文件夹

docker save <image_name>:<tag> -o <path>

(4)内网服务器加载镜像文件

docker load -i XX.tar

一般至此都不会有任何bug。

2、开始卡bug并解决

(1)docker-compose up -d 之后,显示container无法正常创建,报错信息为

Error response from daemon:
failed to create task for container:
failed to create shim task:
OCI runtime create failed:
container_linux.go:328:
starting container process caused “permission denied” : unknown

这里一开始各种怀疑权限问题,各种检查不是权限问题。最后发现竟然是因为麒麟系统自带的podman和docker冲突导致的,卸载podman之后就OK了。

(2)解决完上述问题后,访问localhost,显示502 bad gateway的错误

一开始一直以为是Nginx服务的问题,就按照Dify官方给的解决方案各种操作发现根本没有用。

后来发现是Nginx服务依赖的API服务不正常,docker logs dify-api-1查看报错信息为

[FATAL:partition_root.cc(863)] Check failed: (internal::SystemPageSize() == (size_t{1} << 12)) || (internal::SystemPageSize() == (size_t{1} << 14)).
Running migrations
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
Preparing database migration…

这个时候直接问ChatGPT这是什么bug,怎么解决真的很容易被带沟里,都是血泪!!!

真的很难想象这个错误竟然如此隐蔽,在翻阅了半天dify的issue之后终于发现了有人和我遇到了同样的问题。此处贴上发现的解决方案:

原来是因为我最开始拉取的dify项目是0.11.2的,有这个问题,就按里面的方式,把pypdfium2下载下来后重新build那个api的镜像就可以解决了。

其实dify新版本里已经把这个bug解决掉了,后来升级到了0.14.1,重新拉取对应arm64架构的镜像文件并导入内网服务器就成功解决了。

说明dify这个开源项目还是有很多问题的,要及时更新最新版本。

赞(0)
未经允许不得转载:网硕互联帮助中心 » Dify+华为昇腾服务器ARM架构部署环境准备
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!