【问题标题】:GraalVM native-image building - ARM64GraalVM 原生图像构建 - ARM64
【发布时间】:2022-12-14 16:53:18
【问题描述】:

我正在尝试在我的 Mac M1 中构建一个 Docker 镜像....

当我尝试运行我的图像时,出现“exec 格式错误”,据我所知,这是一个跨平台本机图像问题,但据我所知,我使用 arm64 GraalVM 构建了本机图像。

[1/7] Initializing...                                                                                    
(6,5s @ 0,23GB)
Version info: 'GraalVM 22.3.0 Java 17 CE'
Java version info: '17.0.5+8-jvmci-22.3-b08'
C compiler: cc (apple, arm64, 14.0.0)
Garbage collector: Serial GC
1 user-specific feature(s)

我使用了来自 alpine:arm64 的基本图像

https://hub.docker.com/layers/library/alpine/3.17.0/images/sha256-af06af3514c44a964d3b905b498cf6493db8f1cde7c10e078213a89c87308ba0?context=explore

uname -a

确认这是一个基于 arm64 的 linux。

Linux 5e6ec3a5a46e 5.15.64-0-virt #1-Alpine SMP Mon, 05 Sep 2022 08:02:49 +0000 aarch64 Linux

docker image inspect

报告

"Architecture": "arm64",
"Os": "linux",
"Size": 80206330,
"VirtualSize": 80206330,

它是一个 arm64/linux 是。

这里发生了什么?

【问题讨论】:

  • 您的本机映像是 Mac 还是 Linux 二进制文件? Mac 二进制文件不会在 Linux 容器中运行

标签: docker graalvm-native-image


【解决方案1】:

@peterz 的回答绝对正确,我认为 MacOS 是基于 Unix/Linux 的假设是错误的。

当我为 alpine 做一个跨平台的 native-image Generation 时,这个错误就消失了。

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2022-06-14
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    相关资源
    最近更新 更多