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

构建ARM架构Docker镜像时/bin/sh进程执行失败求助

构建ARM64 Docker镜像时/bin/sh命令执行失败(退出码100)的解决思路

问题概述

  • 需求:构建仅包含ARM专属依赖包的ARM架构Docker镜像
  • 异常现象:在原生ARM64机器或AMD64机器添加linux/arm64参数构建时,所有/bin/sh相关命令(如RUN ls /、运行安装脚本)均失败,报错:buildx执行失败,进程/bin/sh -c xxx未成功完成,退出码100
  • 复现用Dockerfile:
FROM --platform=linux/arm64 arm64v8/debian:11-slim  AS deps

RUN ls /

排查与解决步骤

  1. 切换buildx驱动为容器模式
    部分场景下docker驱动会导致跨架构或原生ARM构建的兼容性问题,切换到docker-container驱动:

    # 检查当前驱动
    docker buildx inspect
    # 创建并使用容器驱动的builder实例
    docker buildx create --use --driver docker-container
    
  2. 清理并重新拉取基础镜像
    基础镜像可能存在缓存损坏或拉取不完整的情况,执行以下操作:

    # 删除本地缓存的基础镜像
    docker rmi arm64v8/debian:11-slim
    # 重新拉取完整镜像
    docker pull arm64v8/debian:11-slim
    # 强制无缓存构建
    docker buildx build --platform linux/arm64 . --no-cache
    
  3. 检查Docker守护进程平台配置
    原生ARM64机器上,确认Docker守护进程未强制设置错误平台:

    • 查看/etc/docker/daemon.json,若存在"default-platform": "linux/amd64"配置则删除
    • 重启Docker服务:
      sudo systemctl restart docker
      
  4. 替换基础镜像验证
    换用其他ARM64基础镜像测试,排查是否为原镜像问题:

    FROM --platform=linux/arm64 arm64v8/ubuntu:22.04 AS deps
    
    RUN ls /
    

    若此镜像可正常构建,可尝试更换debian的其他版本(如arm64v8/debian:12-slim)。

  5. 更新buildx到最新版本
    旧版buildx可能存在已知bug,执行更新:

    docker buildx install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:02:06