[Docker]使用apt-get指定ffmpeg的版本并安装


要做的事情

ubuntu 18.04 Docker映像上以指定的版本安装ffmpeg
但是,执行用户是root,因为重点是版本说明。

最后还包括

alpine版本作为奖励。

方式

首先,最小Dockerfile如下。
ffmpeg=之后指定版本。

1
2
3
4
5
6
7
8
FROM ubuntu:18.04

RUN  apt-get update \
  && apt-get install -y ffmpeg=7:3.4.6-0ubuntu0.18.04.1 \
  && apt clean \
  && rm -rf /var/lib/apt/lists/*

CMD ["/bin/bash"]

在本文中,我们假设我们将其命名为ffprobe-test:0.0.1docker build

1
docker build -t ffprobe-test:0.0.1 .

特定版本

ubuntu 18.04中,可以原样指定下一页Versions published中显示的版本。

  • Bionic(18.04):ffmpeg软件包:Ubuntu

如果指定其他内容,则默认存储库中不存在该内容,因此需要查找并添加存储库。

  • ffmpeg软件包:Ubuntu

如何检查已安装的版本

您可以使用

apt-cache进行检查。
我将省略有关Docker的命令。

1
docker run --rm -i ffprobe-test:0.0.1 apt-cache policy ffmpeg

执行结果

1
2
3
4
5
6
7
$ docker run --rm -i ffprobe-test:0.0.1 apt-cache policy ffmpeg
ffmpeg:
  Installed: 7:3.4.6-0ubuntu0.18.04.1
  Candidate: 7:3.4.6-0ubuntu0.18.04.1
  Version table:
 *** 7:3.4.6-0ubuntu0.18.04.1 100
        100 /var/lib/dpkg/status

如果将

版本更改为7:3.4.2-2,则执行结果如下。

1
2
3
4
5
6
7
$ docker run --rm -i ffprobe-test:0.0.1 apt-cache policy ffmpeg
ffmpeg:
  Installed: 7:3.4.2-2
  Candidate: 7:3.4.2-2
  Version table:
 *** 7:3.4.2-2 100
        100 /var/lib/dpkg/status

高山版

这是奖金。
这指定执行用户不是root

1
2
3
4
5
6
7
8
9
FROM alpine:3.10.2

# ffmpegのインストール
RUN apk add --update --no-cache ffmpeg=4.1.4-r0

# ユーザー追加
RUN adduser -D ffmpeg_user -G nogroup
# docker run時に使われるユーザーに追加したものを指定
USER ffmpeg_user