Docker运行报cannot execute binary file: Exec format错误如何解决?
报错原因排查
bash: xxx: cannot execute binary file: Exec format error 核心原因是待运行的二进制文件指令集与容器运行的CPU架构不兼容,结合你提供的Dockerfile,常见触发场景如下:
- 下载的预编译钱包架构与容器运行架构不符
你直接拉取的euno-2.0.2.tar.gz官方预编译包默认是x86_64(AMD64)架构,如果你在ARM架构设备(比如苹果M系列芯片设备、树莓派、ARM架构云服务器)上构建运行该镜像,就会出现架构不匹配问题。你可以进入容器后分别执行file /usr/local/bin/euno*查看二进制文件架构、执行uname -m查看当前容器运行架构,对比两者是否一致即可确认。 - 多架构构建配置错误
如果你使用buildx工具做多架构镜像构建,未指定与钱包二进制匹配的目标构建架构,也会触发该错误。debian:buster-slim基础镜像本身支持多架构,但你下载的钱包包为固定架构,和目标构建架构不匹配就会出现报错。 - 二进制文件下载损坏
如果确认架构匹配,有可能是wget下载过程中网络异常导致压缩包不完整,解压后的二进制文件损坏,你可以重新下载解压、校验文件完整性后再测试运行。
内容的提问来源于stack exchange,提问作者masternode
相关产品推荐
相关产品推荐

