一、问题背景
(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)内网服务器加载镜像文件
一样平常至此都不会有任何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这个开源项目还是有许多问题的,要实时更新最新版本。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |