我的应用程序有一个 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映像,所以我假定apk应该为arm编译,还是我需要告诉Docker Hub在Arm而不是Intel上构建?
答案 0 :(得分:0)
简单的答案是,您必须在arm服务器上构建一个arm映像,所以我建立在Arm nas本身上,因为它支持Docker,这就是我要做的
这足以使arm32版本可用于安装在arm32机器上。
目前,我有两张单独的图像,一张用于Intel,另一张用于Arm。我知道有一种方法可以将多个图像组合为一个超级图像,但是我还没有尝试过。 repoName / imageName :最新