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

自定义Docker镜像在GitLab CI/CD中运行报错exec /usr/bin/sh: exec format error

解决GitLab CI/CD中Docker镜像执行报错exec /usr/bin/sh: exec format error

问题诊断

这个错误的核心原因是你构建的Docker镜像CPU架构与GitLab Runner所在主机的架构不兼容。比如你在ARM架构机器(如苹果M系列芯片)上构建了ARM版本的镜像,而GitLab Runner运行在x86_64(AMD/Intel)架构的服务器上,就会出现这种执行格式不匹配的错误。

解决方案

方案1:构建支持多架构的镜像(推荐)

通过Docker Buildx构建同时兼容x86_64和ARM的镜像,确保不同架构的Runner都能正常运行:

  1. 确保Docker Buildx已启用(Docker Desktop默认已开启)
  2. 执行以下命令构建并推送多架构镜像:
    docker buildx create --use
    docker buildx build --platform linux/amd64,linux/arm64 -t rethkevin/rf:v1 --push .
    

方案2:指定单一架构构建(仅x86_64)

如果你只需要适配x86_64架构的GitLab Runner,在构建镜像时直接指定目标平台:

docker build --platform linux/amd64 -t rethkevin/rf:v1 .
docker push rethkevin/rf:v1

验证方式

构建完成后,可通过以下命令检查镜像的架构信息:

docker inspect rethkevin/rf:v1 | grep -A2 Architecture

或者登录Docker Hub,查看镜像详情页的架构支持列表,确认包含GitLab Runner所在的架构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:24:20