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

Docker镜像Entrypoint脚本run.sh中‘5 Illegal instruction’错误解析

解释Docker run.sh脚本中的"Illegal instruction"错误

那个./run.sh: line 20: 5 Illegal instruction python3...错误其实是个很直白的硬件兼容性问题,我来拆解下:

核心含义

Illegal instruction(退出码5)意味着你运行容器的主机CPU不支持python3二进制文件里包含的某些指令集。简单说,镜像里的Python程序是在一台指令集更高级的CPU(比如支持AVX2、AVX-512这类扩展指令的现代处理器)上编译/构建的,当你在旧款CPU或者指令集受限的环境(比如某些云服务器的低配实例、老硬件)上跑这个容器时,CPU识别不了这些高级指令,直接触发错误终止程序。

结合你的脚本场景

脚本前半段的py.test没触发错误(如果走到那一步的话),反而在最后执行python3 -u "$CLI" "$BACKEND"时出错,说明问题出在Python二进制本身,和你的脚本逻辑、参数无关。

怎么验证和解决?

  • 先确认CPU指令集差异:在主机上执行cat /proc/cpuinfo | grep flags,查看你的CPU支持的指令列表;然后可以进入能正常运行该镜像的环境(如果有的话),用objdump -d $(which python3) | grep -E 'avx|sse4'这类命令,看Python二进制里是否包含你的主机CPU没有的指令。
  • 修复方案:
    • 更换基础镜像:改用官方维护的通用Python镜像(比如python:3.11-slim),这类镜像都是在兼容广泛CPU的环境下构建的,不会包含小众高级指令。
    • 重新构建镜像:如果是你自己构建的镜像,构建时要指定兼容的平台(比如用docker build --platform linux/amd64),或者在编译Python时禁用高级优化选项(比如./configure --enable-optimizations=no)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:12:09