You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1(Rosetta 2)构建Docker镜像时遇exec format error求助

解决M1 Mac(Rosetta 2环境)Docker构建exec /bin/sh: exec format error问题

核心原因

问题源于Docker拉取了与Rosetta 2模拟的x86_64环境不兼容的arm64架构镜像,导致执行shell命令时出现格式错误。

解决方案

  • 构建时强制指定amd64平台
    在docker build命令中添加平台参数,确保构建过程适配x86_64架构:

    docker build --platform linux/amd64 .
    

    若使用Makefile构建,直接在对应build目标中加入上述参数即可。

  • Dockerfile中锁定基础镜像架构
    给FROM指令添加平台声明,强制拉取amd64版本的基础镜像:

    FROM --platform=linux/amd64 ubuntu:20.04 # 替换为你的实际基础镜像
    
  • 检查Docker Desktop的Rosetta配置
    打开Docker Desktop,进入Settings > Resources > Emulation,勾选"Use Rosetta for x86/amd64 emulation on Apple Silicon",重启Docker后再尝试构建。

  • 清理针对性构建缓存
    执行以下命令彻底清理构建缓存,避免残留的arm64镜像干扰:

    docker builder prune -a
    

额外验证步骤

确认终端运行在Rosetta 2环境:

  • 右键点击终端应用(如Terminal/iTerm2)→Get Info,勾选"Open using Rosetta",重启终端后再执行构建操作。

内容的提问来源于stack exchange,提问作者Pauk_Jhonson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:20:40