我正在尝试在我的Mac M1中构建Docker映像....
当我尝试运行我的图像时,我得到"执行格式错误"据我所知,这是一个跨平台的本机映像问题,但据我所知,我用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是。
这是怎么回事?
@peterz的回答绝对正确,我认为MacOS是基于Unix/Linux的假设是错误的。
当我为alpine生成跨平台原生图像时,这个错误消失了。