データジャングルの視覚化 -- パート4: YapeをDockerイメージで実行する
この短い記事では、マシンにPythonをセットアップしなくて済むように、dockerコンテナでYapeを実行する方法について説明します。
このシリーズの前回の記事からしばらく時間が経っているため、簡単に振り返ってみましょう。
まず、matplotlibで基本的なグラフを作成する方法について話しました。 そして、bokehを使った動的グラフについて紹介しました。 最後にパート3では、monlblデータを使ったヒートマップの生成について説明しました。
フィードバックをさまざまなチャンネルを通じて受け取りましたが、これらを実行するための環境をセットアップするのが困難であるという、共通したテーマが見られました。 そこで、それを少しでも簡単に行えるよう、Murrayと協力して、Murrayの優れたYapeツール用のDockerfileを作成してみることにしました。 GitHubページ
もちろん、これを行うには、マシンにdockerがインストールされている必要があります。
Dockerfile
公式のPythonイメージに基づく、どちらかと言えば単純なdocker定義:
FROM python:3
WORKDIR .
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
Requirements.txtには、Yapeを起動して実行するために必要なパッケージが含まれています。
altgraph==0.10.2
py-dateutil==2.2
bdist-mpkg==0.5.0
certifi==2017.7.27.1
cffi==1.10.0
chardet==3.0.4
idna==2.5
bokeh==0.12.6
macholib==1.5.1
matplotlib==2.0.2
pandas==0.20.3
modulegraph==0.10.4
numpy==1.13.1
py2app==0.7.3
pycparser==2.18
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
requests==2.18.3
six==1.4.1
urllib3==1.22
zope.interface==4.1.1
イメージをビルドするには、GitHubリポジトリを確認してから、docker buildを実行します。
git clone https://github.com/murrayo/yape.git
docker build -t yape .
(プルリクエスト がマージされるまでは、https://github.com/kazamatzuri/yape.gitを使用してください)
使用しているマシンやインターネット接続の速度にもよりますが、これには数分かかります。
その後、以下のようにして、pButtonsファイルでYapeを実行できます。
docker run -v `pwd`/in:/data --rm --name yape-test yape \
./extract_pButtons.py -o /data \
/data/pButtons.html
docker run -v `pwd`/in:/data --rm --name yape-test yape \
./graph_pButtons.py -o /data/charts /data
現在の作業ディレクトリでは
/in
を使用しているため、それをコンテナの/data
にマッピングします。 そこからpButtons.htmlを取得し、グラフをそのディレクトリに出力します。
注意事項
スクリプトにパラメーターを追加する必要がありました。公式のYapeリポジトリにマージしているところです(プルリクエスト)