我的应用程序有一个Docker文件,我使用Docker Hub来构建它。这在基于 Intel 的Synology DS218+ Disk Station上运行良好。
Qnap通过其Container Station软件在Intel和Arm设备上支持 Docker ,我购买了一个 TS131P 来测试它,但它失败了。显然我必须构建图像的 Arm 版本,但我该怎么做呢?exec format error
我可以以某种方式在 Qnap 本身上构建图像吗?
更新
所以我的基本映像是openjdk:8-jre-alpine
,所以我在 DockerHub 上找到了一个与此等效的 arm32,https ://hub.docker.com/r/arm32v6/openjdk/所以现在:
- 创建了一个新的 BitBucket 代表
- 通过 Docker 文件复制
- 将 Docker 文件的第一行更改为
FROM arm32v6/openjdk:8-jre-alpine
- 在链接到此 repo 的 Docker 上创建了一个新的自动构建
但是构建现在在第二行失败了
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 上?