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

Docker构建Python/Flask镜像时RUN pip命令执行失败求助

解决Docker构建时exec /bin/sh: exec format error问题

核心原因

这个错误绝大多数是CPU架构不兼容导致的:比如你用ARM架构机器(如苹果M1/M2芯片),但拉取了默认的AMD64架构Python镜像,容器内二进制文件和宿主机架构不匹配,执行命令时就会触发格式错误。之前构建成功可能是Docker自动适配了架构,后续缓存残留不兼容镜像层导致失败。

解决方案

1. 明确指定镜像架构

在Dockerfile的FROM行添加平台参数,匹配你的宿主机架构:

  • ARM64架构(苹果M系列、部分国产芯片):
    FROM --platform=linux/arm64 python:3.9
    
  • AMD64架构(普通x86_64电脑):
    FROM --platform=linux/amd64 python:3.9
    

2. 清理缓存后重新构建

之前的缓存可能残留不兼容镜像层,执行以下命令彻底清理后重新构建:

# 清理所有未使用的镜像、容器、缓存(谨慎操作,会删除未用到的资源)
docker system prune -a

# 不带缓存构建,同时指定对应平台
docker build --no-cache --platform=linux/arm64 -t flask-finding-driver .

(将--platform值替换为你的实际架构)

3. 统一使用python3命令

部分镜像中python指向Python2,改为python3避免版本混淆:
修改Dockerfile中的RUN命令:

RUN python3 -m pip install --upgrade pip
RUN pip3 install -r requirements.txt

修正后的完整Dockerfile示例(ARM64版本)

FROM --platform=linux/arm64 python:3.9

WORKDIR /flask-finding-driver

COPY finding_driver.py requirements.txt /flask-finding-driver/

RUN python3 -m pip install --upgrade pip
RUN pip3 install -r requirements.txt

EXPOSE 5000

ENV FLASK_APP=finding_driver.py

CMD ["flask", "run", "--host=0.0.0.0"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:52:51