如何为ARM设备构建Docker映像?

如何为ARM设备构建Docker映像?,docker,go,raspberry-pi,arm,Docker,Go,Raspberry Pi,Arm,我注意到,在尝试在Raspberry Pi 4上运行Docker映像时,exec用户进程导致了“exec格式错误” 首先,我感到困惑的是,一个码头工人的形象是拉,不会在平台上运行开始。尽管如此,我还是很想让它发挥作用,但我不知道怎么做 项目如下:如何构建ARM兼容的图像?来自golang的线路将拉动适当的架构;他们将ARMV6(运行raspbian的旧pi/pi 0)+ARMV7(运行raspbian的新pi)和arm64(运行ubuntu的新pi)作为多拱门docker映像的一部分 您的exe

我注意到,在尝试在Raspberry Pi 4上运行Docker映像时,exec用户进程导致了“exec格式错误”

首先,我感到困惑的是,一个码头工人的形象是拉,不会在平台上运行开始。尽管如此,我还是很想让它发挥作用,但我不知道怎么做


项目如下:如何构建ARM兼容的图像?

来自golang的
线路将拉动适当的架构;他们将ARMV6(运行raspbian的旧pi/pi 0)+ARMV7(运行raspbian的新pi)和arm64(运行ubuntu的新pi)作为多拱门docker映像的一部分

您的exec格式错误问题(即,它是错误的二进制格式)似乎只是您的体系结构对pi的错误;它应该是GOARCH=arm(32位,非ubuntu)或GOARCH=arm64(ubuntu),此外,对于32位arm(v6和v7),您还需要每个指定GOARM=6或GOARM=7

我已经测试了您的代码,将其替换为GOARCH=arm64(不需要GOARM),并让它在运行ubuntu的pi3b+上构建和运行


注意,如果/当raspbian切换到64位时,我怀疑我的答案可能会改变,以供将来参考

来自golang的
线路将拉动适当的架构;他们将ARMV6(运行raspbian的旧pi/pi 0)+ARMV7(运行raspbian的新pi)和arm64(运行ubuntu的新pi)作为多拱门docker映像的一部分

您的exec格式错误问题(即,它是错误的二进制格式)似乎只是您的体系结构对pi的错误;它应该是GOARCH=arm(32位,非ubuntu)或GOARCH=arm64(ubuntu),此外,对于32位arm(v6和v7),您还需要每个指定GOARM=6或GOARM=7

我已经测试了您的代码,将其替换为GOARCH=arm64(不需要GOARM),并让它在运行ubuntu的pi3b+上构建和运行


注意,如果/当raspbian切换到64位时,我怀疑我的答案可能会改变,以供将来参考

您是否在pi上构建了此映像?您是否在pi上构建了此映像?我想我这里有些东西可以工作,但是清单部分在使用
docker run-it-hendry/sla:latest
在rpi4上测试时似乎不能正常工作。我想我这里有一些东西可以工作,但是清单部分在上测试时似乎不能正常工作带有
docker运行的rpi4-it hendry/sla:最新版本