やること
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