Skip to main content
 首页 » 编程设计

python之Docker 构建在 `add-apt-repository: not found` 上失败

2025年02月15日31emanlee

我的 docker 构建失败:

 ---> Running in a0d2edd6bf20 
/bin/sh: 1: add-apt-repository: not found     
The command '/bin/sh -c add-apt-repository ppa:jonathonf/ffmpeg-3 && apt-get update && apt install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev ffmpeg libav-tools x264 x265' returned a non-zero code: 127 

我研究了这个问题,它说要安装 software-properties-common 或 python-software-properties

我就是这样做了,但错误仍然存​​在。这是我到那时为止的 Dockerfile

FROM ubuntu:16.04 
 
ENV HOME_DIR=/root 
 
WORKDIR $HOME_DIR 
 
RUN apt-get update && apt-get install -y \ 
    pkg-config \ 
    git \ 
    cmake \ 
    build-essential \ 
    nasm \ 
    wget \ 
    python3-setuptools \ 
    libusb-1.0-0-dev  \ 
    python3-dev \ 
    python3-pip \ 
    python3-numpy \ 
    python3-scipy \ 
    libglew-dev \ 
    libglfw3-dev \ 
    libtbb-dev \ 
    software-properties-common \ 
    python-software-properties  
 
RUN add-apt-repository ppa:jonathonf/ffmpeg-3 && \ 
    apt-get update && \ 
    apt install -y \ 
    libavformat-dev \ 
    libavcodec-dev \ 
    libavdevice-dev \ 
    libavutil-dev \ 
    libswscale-dev \ 
    libavresample-dev \ 
    ffmpeg \ 
    libav-tools \ 
    x264 \ 
    x265 

请您参考如下方法:

您可以使用现有的 Dockerfile 构建镜像。我假设您在尝试构建 2 个单独的图像时遇到问题。

那是因为 add-apt-repository 在 software-properties-common 或 python-software-properties 之前是无法识别的安装。

如果两次运行都在一个 Dockerfile 中,并且您使用
构建了一个镜像 docker build -t mydockerimage .
你不会看到任何问题,因为第二层/运行将建立在第一层之上,所以 add-apt-repository 是可识别的,你不会有任何问题。

我希望这能回答您的问题。