2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Docker】apt-getでffmpegのバージョンを指定してインストールする

Last updated at Posted at 2019-08-21

やること

ubuntu 18.04のDockerイメージにバージョンを指定したffmpegをインストールします。
ただし、バージョン指定を主眼に置いているため、実行ユーザーがrootになっています。

alpine版も最後におまけとして載せます。

やり方

まず最低限のDockerfileが以下です。
ffmpeg=の後に指定しているのがバージョンです。

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.1と名付けてdocker buildした前提で話を進めます。

docker build -t ffprobe-test:0.0.1 .

指定可能なバージョン

ubuntu 18.04では以下のページのVersions publishedに示されているバージョンはそのままで指定することができます。

その他の内容を指定する場合は、デフォルトリポジトリに存在していないので、リポジトリを探して追加してやる必要があります。

インストールされたバージョンの確認方法

apt-cacheで確認できます。
Docker周りのコマンドについては省略します。

docker run --rm -i ffprobe-test:0.0.1 apt-cache policy ffmpeg
実行結果
$ 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に変えてやると以下のような実行結果となります。

$ 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

alpine版

おまけです。
こちらは実行ユーザーにrootじゃないものを指定しています。

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
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?