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

树莓派环境下Docker构建Python镜像时安装PyYAML报错求助

问题根因

这个报错是Raspbian 10(buster)ARM架构环境下Docker默认安全策略限制导致的:pip解压PyYAML 5.4.1源码包时需要修改文件的修改时间(mtime),而树莓派Docker的默认seccomp规则拦截了utime系统调用,触发权限不足报错。x86架构的Windows、Ubuntu环境下安全策略限制更宽松,因此可以正常构建。

解决方案

按生效优先级从高到低排列:

  • 方案1(修改Dockerfile,无额外操作成本)
    在pip install命令后添加--no-use-pep517参数,禁用PEP517构建流程,跳过修改mtime的步骤,修改后的Dockerfile对应行如下:
RUN pip install --no-use-pep517 -r requirements.txt
  • 方案2(预安装系统依赖,跳过源码编译)
    先通过apt安装PyYAML的预编译二进制包,再安装requirements依赖,修改Dockerfile:
FROM python:3
WORKDIR /usr/src/wakeonlan
COPY . .
RUN pip install --no-cache-dir --upgrade pip
# 安装PyYAML系统依赖,避免源码编译解压报错
RUN apt update && apt install -y --no-install-recommends python3-yaml libyaml-dev && rm -rf /var/lib/apt/lists/*
# 安装依赖
RUN pip install -r requirements.txt
  • 方案3(调整Docker构建参数)
    执行docker build时添加安全参数关闭seccomp限制:
    docker build --security-opt seccomp=unconfined .
  • 方案4(更换基础镜像)
    将基础镜像从python:3更换为兼容性更好的slim版本,减少冗余组件带来的兼容性问题:
FROM python:3-slim

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:15:04