问题:在多阶段 docker build 中复制 ffmpeg bins

我正在尝试通过多级 docker build 安装 ffmpeg

这是包含 ffmpeg 二进制文件的 ffmpeg 图像

FROM jrottenberg/ffmpeg

这是我运行 Web 服务器所需的 pm2 映像

FROM keymetrics/pm2:8-alpine

我将bins复制到当前镜像中,可以看到ffmpeg、ffserver和ffprobe都存在于/usr/local/bin中。

COPY --from=0 /usr/local /usr/local

复制命令似乎成功了,因为当我以交互方式运行容器时这些文件存在。

$# which ffmpeg
/usr/local/bin/ffmpeg

但是,当我尝试运行垃圾箱时,它说找不到该命令。

$# ffmpeg --version
/bin/sh: ffmpeg: not found

解答

我遇到了类似的问题,最终使用支持构建“静态”PIE 二进制文件的 alpine gcc 工具链构建了自己的没有依赖关系的二进制文件。原因是我不想要依赖、强化构建并且还支持 ASLR。

https://hub.docker.com/r/mwader/static-ffmpeg/

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐