如何在 UBI docker 镜像上安装 ffmpeg?

问题描述 投票:0回答:2

我正在寻找一种在 UBI8(ubi-minimal)docker 镜像中安装 ffmpeg 的简单方法。

我尝试在 dockerfile 中运行以下内容:

RUN microdnf upgrade
RUN microdnf install ffmpeg

我得到:

------
 > [7/8] RUN microdnf install ffmpeg:
#11 0.375
#11 0.375 (microdnf:1): librhsm-WARNING **: 07:58:19.229: Found 0 entitlement certificates
#11 0.375
#11 0.375 (microdnf:1): librhsm-WARNING **: 07:58:19.230: Found 0 entitlement certificates
#11 0.519 error: No package matches 'ffmpeg'
------
executor failed running [/bin/sh -c microdnf install ffmpeg]: exit code: 1

如何在UBI 8上轻松安装ffmpeg?

注意:我尝试参考网络上的大量参考资料来解释如何做到这一点,例如 this onethis 以及,但 UBI 的工作方式似乎有所不同。

docker ffmpeg redhat dnf ubi
2个回答
1
投票

简短回答:你不能... 即使您在 ffmpeg 所在的位置启用 rpmfusion(如您指向的链接中所示),作为依赖项的 SDL2 包在 UBI 行(UBI8 或 UBI9)中也不可用。即使添加 Epel、CodeReadyBuilder、...SDL2 也是您无法获得的缺失项。

您将获得的最接近 UBI 的东西是通过 CentOS Stream。这就是我在很多 UBI 不起作用的情况下所做的事情(而且有很多......)。由于它与 RHEL 几乎相同,因此需要支持的人可以使用几乎相同的 Dockerfile 直接构建。

现在,如果您不分发正在构建的内容并且拥有正确的 RHEL 许可证,您始终可以从 UBI8 开始构建 Dockerfile、注册、添加 ffmpeg(这将起作用,因为您将从注册的 RHEL 存储库中获取 SDL2),并注销。有点像弗兰肯斯坦镜像...但是如果你有 RHEL 许可证并且不打算分发,你最好构建一个纯粹的基于 RHEL 的容器镜像。


0
投票

您可以使用

COPY --from
从另一个图像复制静态 PIE 二进制文件。

COPY --from=mwader/static-ffmpeg:6.1.1 /ffmpeg /usr/local/bin/
COPY --from=mwader/static-ffmpeg:6.1.1 /ffprobe /usr/local/bin/

请检查 GitHub 存储库有关此图像的信息。
https://github.com/wader/static-ffmpeg


这是同时使用

COPY --link
的好场景。
使用前请仔细阅读文档

© www.soinside.com 2019 - 2024. All rights reserved.