为了账号安全,请及时绑定邮箱和手机立即绑定

从 arm32v7 golang 映像构建 docker 映像时出现 exec 格式错误

从 arm32v7 golang 映像构建 docker 映像时出现 exec 格式错误

Go
慕码人2483693 2022-06-21 17:03:43
我正在尝试构建一个 docker 映像arm32v7/golang:1.13.4-alpine,我是从 mac 成功构建的,但是当我尝试在 linux 机器上构建它时,它会抛出一个exec format error. 有很多问题,exec format error但找不到任何解决方案。我的 docker 文件如下所示FROM arm32v7/golang:1.13.4-alpine as stagingRUN .....RUN .....RUN tar -czvf sbuild.tar.gz ./servicebuild............CMD tar -xzvf sbuild.tar.gz && ./servicebuild它基本上在 docker 文件中的第一个命令处失败并抛出错误 standard_init_linux.go:211: exec user process caused "exec format error"构建机器的架构 Linux x86_64 x86_64 x86_64 GNU/Linux上面的架构不支持arm32v7吗?有没有其他方法可以做到这一点?
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

您需要通过 QEMU 和 binfmt_misc 启用不同的多架构容器的执行。

在最近的发行版中,这可以通过运行简单地完成:

apt-get install qemu-user-static

如果这对您不起作用,您可以执行:

docker run --rm --privileged multiarch/qemu-user-static --reset --persistent yes --credential yes

请注意,这可能会重新配置您拥有的任何现有 binfmt_misc 设置。有关更多详细信息,请参阅https://github.com/multiarch/qemu-user-static

此信息可在一个 alpine 存储库 README 中找到,但据我所知不在 wiki 上:https ://gitlab.alpinelinux.org/alpine/docker-abuild#configure-multi-arch-support


查看完整回答
反对 回复 2022-06-21
?
烙印99

TA贡献1829条经验 获得超13个赞

这是因为 Docker for Mac 支持多 CPU 架构:https ://docs.docker.com/docker-for-mac/multi-arch/

据我所知,在使用本机 Docker 的 Linux 上你没有。尽管您可以通过安装额外的软件来做到这一点。例如查看这篇文章:https ://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408


查看完整回答
反对 回复 2022-06-21
  • 2 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号