Pythonで音楽系Webサービスを作るにあたり、素晴らしい音信号処理モジュールであるLibROSAと、様々なオーディオファイルを扱うには必須であるFFmpegをDockerに導入してみました。 最終的に、参考ページにあるような、(Nginx+)uWSGI+Flaskも入ったDocker コンテナを運用できるようになります。
参考ページ
Nginxコンテナ
参考ページそのままです
uWSGI+Flask+LibROSA+ffmpegコンテナ
Dockerfileを変更しました。
[2020年1月追記] FFmpeg Static Builds については、CPUアーキテクチャを確認して、以下のサイトのURLを使ってください。
John Van Sickle - FFmpeg Static Builds
なお、サンプルコードで指定した ffmpeg-release-64bit-static.tar.xz のURLが無効になっていました。CPUアーキテクチャがx86_64の場合、 https://www.johnvansickle.com/ffmpeg/old-releases/から指定してください。
# ベースイメージ
FROM python:3.6
#FROM continuumio/anaconda3
# =====================
# FFMPEG
# =====================
RUN apt-get update && apt-get install -y \
wget \
xz-utils
WORKDIR /tmp
RUN wget http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz \
&& tar Jxvf ./ffmpeg-release-64bit-static.tar.xz \
&& cp ./ffmpeg*64bit-static/ffmpeg /usr/local/bin/
CMD /bin/bash
# =====================
# uWSGI and PIP
# =====================
RUN mkdir /var/www
# workdirの指定
WORKDIR /var/www
# 依存Pythonライブラリ一覧コピー
COPY requirements.txt ./
# 依存Pythonライブラリインストール
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
WORKDIR /var/www/src
CMD ["uwsgi","--ini","/var/www/uwsgi.ini"]