我的应用程序有一个 Docker 文件,我使用 Docker Hub 来构建它。 这在基于 Intel 的Synology DS218+ Disk Station 上运行良好。
Qnap 通过其 Container Station 软件在 Intel 和 Arm 设备上支持 Docker,我购买了 TS131P 来测试此功能,但失败并显示
exec format error
。显然我必须构建该映像的 Arm 版本,但我该怎么做?
我可以以某种方式在 Qnap 本身上构建镜像吗?
更新
所以我的基础镜像是
openjdk:8-jre-alpine
,所以我在 DockerHub 上找到了与此等效的arm32,https://hub.docker.com/r/arm32v6/openjdk/所以现在:
FROM arm32v6/openjdk:8-jre-alpine
RUN apk --no-cache add \
curl \
tini
与
[91mstandard_init_linux.go:190: exec user process caused "exec format error"
由于我使用的是arm镜像,我认为应该为arm编译apk,或者我是否需要告诉Docker Hub在Arm而不是Intel上构建?
目前我有两个单独的映像,一个用于 Intel,一个用于 Arm。我知道有一种方法可以将多个图像组合成一个超级图像,但我还没有尝试过。
repoName/imageName:最新
基于 Arm 的服务器的更详细指南,您可以参考此综合资源。