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

Docker构建镜像时Python脚本执行报错,如何解决?

Docker构建镜像报错(ERROR: failed to solve: process "/bin/sh -c python3...")的解决方法

执行docker build -t my_img .时出现报错:ERROR: failed to solve: process "/bin/sh -c python3...",对应的Dockerfile内容如下:

FROM nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04

ENV DEBIAN_FRONTEND noninteractive

# setup timezone
RUN echo 'Etc/UTC' > /etc/timezone && \
    ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
    apt-get update && \
    apt-get install -q -y --no-install-recommends tzdata && \
    rm -rf /var/lib/apt/lists/*

# Install necessary dependencies
RUN apt-get update && apt-get install -q -y --reinstall --no-install-recommends \
    curl \
    git \
    lsb-release \
    build-essential \
    software-properties-common \
    cmake \
    python3-pip python3-dev python-is-python3 \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# setup environment
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8

## BlenderProc
WORKDIR /root
RUN git clone https://github.com/DLR-RM/BlenderProc.git
WORKDIR /root/BlenderProc
RUN pip install -e .

## Download textures
RUN echo 'import blenderproc as bproc' | cat - /root/BlenderProc/blenderproc/scripts/download_cc_textures.py > temp && mv temp /root/BlenderProc/blenderproc/scripts/download_cc_textures.py
RUN python3 /root/BlenderProc/blenderproc/scripts/download_cc_textures.py

ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility

问题分析及修复步骤

1. 补充Blender运行环境(核心问题)

BlenderProc依赖Blender的Python环境,原Dockerfile未安装Blender,直接执行import blenderproc会报错。需添加Blender安装步骤:

在# setup environment之后、## BlenderProc之前插入以下代码:

# Install Blender(适配BlenderProc的3.3.1版本)
ENV BLENDER_VERSION="3.3.1"
RUN apt-get update && apt-get install -y --no-install-recommends \
    libgl1-mesa-glx \
    libxi6 \
    libxrender1 \
    libxkbcommon-x11-0 \
    && rm -rf /var/lib/apt/lists/*

RUN curl -L https://download.blender.org/release/Blender${BLENDER_VERSION%.*}/blender-${BLENDER_VERSION}-linux-x64.tar.xz -o blender.tar.xz && \
    tar -xf blender.tar.xz && \
    mv blender-${BLENDER_VERSION}-linux-x64 /opt/blender && \
    rm blender.tar.xz && \
    ln -s /opt/blender/blender /usr/bin/blender && \
    ln -s /opt/blender/${BLENDER_VERSION}/python/bin/python3 /usr/bin/blender-python

同时修改BlenderProc的pip安装命令,改用Blender自带的Python执行:

RUN /opt/blender/${BLENDER_VERSION}/python/bin/pip install -e .

2. 修复纹理下载脚本执行逻辑

原脚本修改方式易引发异常,直接使用BlenderProc内置命令下载纹理:

## Download textures
RUN blender-python -c "import blenderproc as bproc; bproc.download_cc_textures('/root/cc_textures')"

3. 优化网络稳定性(可选)

若构建时网络不稳定,可添加国内镜像源加速:

  • 在apt-get update前添加:
    RUN sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
    
  • 在pip安装前添加:
    RUN /opt/blender/${BLENDER_VERSION}/python/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

4. 拆分RUN命令便于排查

将长RUN命令拆分为独立步骤,比如把git克隆、pip安装、纹理下载分开,构建时能快速定位具体失败环节。

修改后的完整Dockerfile示例

FROM nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04

ENV DEBIAN_FRONTEND noninteractive
ENV BLENDER_VERSION="3.3.1"

# 使用国内镜像源加速(可选)
RUN sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# setup timezone
RUN echo 'Etc/UTC' > /etc/timezone && \
    ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
    apt-get update && \
    apt-get install -q -y --no-install-recommends tzdata && \
    rm -rf /var/lib/apt/lists/*

# Install necessary dependencies
RUN apt-get update && apt-get install -q -y --reinstall --no-install-recommends \
    curl \
    git \
    lsb-release \
    build-essential \
    software-properties-common \
    cmake \
    python3-pip python3-dev python-is-python3 \
    zlib1g-dev \
    libgl1-mesa-glx \
    libxi6 \
    libxrender1 \
    libxkbcommon-x11-0 \
    && rm -rf /var/lib/apt/lists/*

# setup environment
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8

# Install Blender
RUN curl -L https://download.blender.org/release/Blender${BLENDER_VERSION%.*}/blender-${BLENDER_VERSION}-linux-x64.tar.xz -o blender.tar.xz && \
    tar -xf blender.tar.xz && \
    mv blender-${BLENDER_VERSION}-linux-x64 /opt/blender && \
    rm blender.tar.xz && \
    ln -s /opt/blender/blender /usr/bin/blender && \
    ln -s /opt/blender/${BLENDER_VERSION}/python/bin/python3 /usr/bin/blender-python

# 设置pip镜像源(可选)
RUN /opt/blender/${BLENDER_VERSION}/python/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

## BlenderProc
WORKDIR /root
RUN git clone https://github.com/DLR-RM/BlenderProc.git
WORKDIR /root/BlenderProc
RUN /opt/blender/${BLENDER_VERSION}/python/bin/pip install -e .

## Download textures
RUN blender-python -c "import blenderproc as bproc; bproc.download_cc_textures('/root/cc_textures')"

ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:14:53