如何在Apple M1(Arm)上用Maven构建Quarkus原生Linux/amd64镜像
在Apple M1(Arm)上构建Linux/amd64架构的Quarkus原生镜像问题(后续)
这是Stack Overflow问题《Building quarkus native Linux/amd64 (x86_64) image from Apple M1 (Arm)》的后续,我仍受此问题困扰。我遇到了完全相同的问题(不过使用的是Maven),尝试在Apple M1上构建Linux/amd64架构的Quarkus原生镜像,有人成功实现吗?
我尝试了多种配置,但生成的runner或Docker镜像始终是arm64(aarch64)架构,或者构建过程卡住。以下是我基于Quarkus官方文档的Maven构建命令之一:
mvn clean package -Pnative -e \ -Dmaven.test.skip=true \ -Dquarkus.native.container-build=true \ -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image:22.3-java17 \ -Dquarkus.container-image.build=true \ -Dquarkus.container-image.push=true
将-Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image:22.3-java17替换为-Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image:22.3.1.0-Final-java17-amd64会导致构建卡住。
我的Dockerfile.native内容如下(不确定是否相关):
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7 WORKDIR /work/ COPY target/*-runner /work/application RUN chmod 775 /work EXPOSE 8080 CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
生成的Quarkus runner可执行文件信息如下:
ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0
在Docker终端执行uname -m输出为aarch64。我遗漏了什么?恳请提供帮助。
内容的提问来源于stack exchange,提问作者eistropfen
相关产品推荐
相关产品推荐

