この短い記事では、マシンにPythonをセットアップしなくて済むように、dockerコンテナで[Yape](https://jp.community.intersystems.com/node/492141)を実行する方法について説明します。 このシリーズの前回の記事からしばらく時間が経っているため、簡単に振り返ってみましょう。 まず、[matplotlibで基本的なグラフを作成する](https://jp.community.intersystems.com/node/501381)方法について話しました。 そして、[bokehを使った動的グラフ](https://jp.community.intersystems.com/node/507056)について紹介しました。 最後にパート3では、[monlblデータを使ったヒートマップ](https://jp.community.intersystems.com/node/507061)の生成について説明しました。 フィードバックをさまざまなチャンネルを通じて受け取りましたが、これらを実行するための環境をセットアップするのが困難であるという、共通したテーマが見られました。 そこで、それを少しでも簡単に行えるよう、Murrayと協力して、Murrayの優れた[Yape](https://jp.community.intersystems.com/node/492141)ツール用のDockerfileを作成してみることにしました。 [GitHubページ](https://github.com/murrayo/yape) もちろん、これを行うには、マシンに[docker](https://www.docker.com/)がインストールされている必要があります。 ## Dockerfile 公式のPythonイメージに基づく、どちらかと言えば単純なdocker定義: ~~~ FROM python:3 WORKDIR . COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . ~~~ [ソース](https://github.com/kazamatzuri/yape/blob/master/Dockerfile) 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 ~~~ [ソース](https://github.com/kazamatzuri/yape/blob/master/requirements.txt) イメージをビルドするには、GitHubリポジトリを確認してから、docker buildを実行します。 git clone https://github.com/murrayo/yape.git docker build -t yape . ([プルリクエスト](https://github.com/murrayo/yape/pull/1) がマージされるまでは、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リポジトリにマージしているところです([プルリクエスト](https://github.com/murrayo/yape/pull/1))