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

Docker构建时安装requirements依赖失败问题求助

问题:Docker构建时pip安装scipy失败(退出码1)

在使用python:3.11-alpine基础镜像执行docker build -t .构建镜像时,RUN pip install -r requirements.txt步骤失败,安装scipy的构建依赖时返回退出码1。

原Dockerfile

FROM python:3.11-alpine
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD python app.py

关键错误日志片段

#9 27.08   × pip subprocess to install build dependencies did not run successfully.
#9 27.08   │ exit code: 1
#9 27.08 ╰─> See above for output.
#9 27.08 note: This error originates from a subprocess, and is likely not a problem with pip.
------
executor failed running [/bin/sh -c pip install -r requirements.txt]: exit code: 1

解决方案

方法1:改用Debian-based Python镜像(推荐)

Alpine使用musl libc,与多数科学计算包依赖的glibc不兼容,且默认缺少编译工具链,导致scipy/numpy需要从头编译且容易失败。改用Debian基础的Python镜像(如slim或bullseye),可以直接使用预编译的wheel包,避免编译问题:

FROM python:3.11-slim
COPY . /app
WORKDIR /app
# 安装必要的系统依赖(用于部分包的编译)
RUN apt-get update && apt-get install -y --no-install-recommends gcc gfortran libopenblas-dev \
    && rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir -r requirements.txt
CMD python app.py

方法2:在Alpine中补充完整编译依赖

如果必须使用Alpine镜像,需要手动安装scipy编译所需的系统级依赖:

FROM python:3.11-alpine
COPY . /app
WORKDIR /app
# 安装编译scipy/numpy的依赖包
RUN apk add --no-cache gcc gfortran musl-dev openblas-dev lapack-dev
RUN pip install --no-cache-dir -r requirements.txt
CMD python app.py

方法3:强制使用预编译wheel包

通过pip参数强制使用预编译的wheel文件,跳过本地编译步骤(前提是PyPI上存在对应平台的预编译包):

修改Dockerfile中的pip安装命令:

RUN pip install --no-cache-dir --only-binary :all: -r requirements.txt

内容的提问来源于stack exchange,提问作者SANJAY. R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:23:23