はじめに
docker環境でwebアプリ開発をしていたのですが、そこに図を表示してみたくなってmatplotlibを入れました。しかしなぜか日本語表記が出来なくて手こずったので、その記録として残します。
他の記事をいろいろ探しましたが、jupyterのdockerイメージを使っているものが多く、ubuntuを使っているものが見つからなかったので、誰かの役に立てば嬉しいです。
参考にさせていただいた記事:
Docker環境のPythonで日本語を使用できるように
Dockerfile
FROM ubuntu:18.04
RUN apt-get -y update \
&& apt-get -y upgrade \
&& apt-get install -y locales curl python3-distutils \
&& apt-get install -y unzip\
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
&& python3 get-pip.py \
&& pip install -U pip \
&& pip install psycopg2-binary \
&& mkdir /code\
&& rm -rf /var/lib/apt/lists/* \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8\
&& rm get-pip.py
WORKDIR /code
ADD requirements.txt /code
# requirements.txtからパッケージのインストール
RUN pip install -r requirements.txt
# matplotlibで日本語を使うための設定
WORKDIR /
RUN curl -L "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip" > font.zip \
&& unzip font.zip\
&& touch /usr/local/lib/python3.6/dist-packages/matplotlib/mpl-data/fonts/ttf/ipaexg.ttf\
&& cp IPAexfont00401/ipaexg.ttf /usr/local/lib/python3.6/dist-packages/matplotlib/mpl-data/fonts/ttf/ipaexg.ttf \
&& echo "font.family : IPAexGothic" >> /usr/local/lib/python3.6/dist-packages/matplotlib/mpl-data/matplotlibrc \
&& rm -r ./root/.cache
CMD ["bash"]
matplotlibで日本語表記が出来ない原因は日本語表記を可能にするフォントがないからです。
そのため、そのフォントをダウンロードして適切な場所に置いています。
今回使用しているpythonのバージョンはpython3.6です。バージョンに応じてpathのところを変更すると良いです。
また、ubuntu環境ではunzipコマンドがなかったので、それもインストールしています。
データ処理に使いそうなライブラリはrequirements.txtに入れています。(djangoを使っているので、それも入れてます)
django
numpy
pandas
matplotlib
seaborn
あとはdocker-compose.ymlに適切なコードを書いて実行するだけです。docker-compose.ymlは特に変更は加えていません。
結果
できた!##まとめ
他のサイトではjupyterイメージで書いているものが多く、途中それでやったほうがよかったのかなと思いましたが、ubuntuでも出来たのでよかったです。最初からデータ分析ライブラリを入れるとわかっていたらjupyterのほうがよかったのでしょうか...。まだそこらへんの知識が全然ないので、もう少し深堀りしていきたいです。
もし何か間違っていたりしたら教えていただけるとありがたいです!