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

通过Dockerfile安装FFmpeg时遇deb-multimedia-keyring包找不到错误求助

问题解决:Debian Bullseye容器中安装FFmpeg时找不到deb-multimedia-keyring包

核心问题分析

  1. deb-multimedia-keyring不在官方源:Debian官方仓库不包含deb-multimedia-keyring,这个包属于第三方deb-multimedia仓库,必须先添加该仓库源并导入对应密钥才能安装。
  2. Dockerfile语法错误:
    • buildDeps定义中错误使用&&分隔依赖,应该用空格。
    • ./configure命令换行时语法错误,导致--enable-*参数被当作独立命令执行,引发构建失败。

修正后的Dockerfile

FROM openjdk:8-jdk-bullseye
COPY ./ffmpeg-4.1.1.tar.bz2 /tmp

# 添加deb-multimedia仓库源并导入密钥
RUN apt-get update -oAcquire::AllowInsecureRepositories=true && \
    apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 wget gnupg && \
    # 导入deb-multimedia的GPG密钥
    wget -O- https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb | dpkg -i - && \
    # 添加deb-multimedia仓库源
    echo "deb [trusted=yes] http://www.deb-multimedia.org bullseye main non-free" >> /etc/apt/sources.list.d/deb-multimedia.list && \
    apt-get update && \
    # 安装构建依赖
    buildDeps="build-essential libmp3lame-dev libvorbis-dev libtheora-dev libspeex-dev yasm pkg-config libfaac-dev libopenjpeg-dev libx264-dev" && \
    apt-get install -yq --no-install-recommends ${buildDeps} && \
    # 编译安装FFmpeg
    DIR=/home/sigadmin/bin/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
    tar -jx --strip-components=1 -f /tmp/ffmpeg-4.1.1.tar.bz2 && \
    ./configure --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame \
                --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libspeex --enable-shared --enable-pthreads --enable-libopenjpeg --enable-libfaac --enable-nonfree && \
    make && make install && \
    # 清理依赖和临时文件,减小镜像体积
    apt-get purge -y ${buildDeps} wget gnupg && \
    apt-get autoremove -y && \
    apt-get clean -y && \
    rm -rf /var/lib/apt/lists/* /tmp/ffmpeg-4.1.1.tar.bz2

关键修正点说明

  • 添加第三方仓库:通过wget获取deb-multimedia密钥包并安装,然后添加仓库源到系统配置中,确保能找到目标包及相关依赖。
  • 修复语法错误:
    • 移除buildDeps中的&&,用空格分隔所有构建依赖。
    • 将./configure的参数换行改为用反斜杠\连接,确保所有参数属于同一个命令。
  • 镜像优化:编译完成后清理构建依赖和临时文件,避免镜像体积过大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:55:24