LoginSignup
0
0

More than 3 years have passed since last update.

Dockerfileにmatplotlibで日本語表記ができる設定を書いた

Last updated at Posted at 2021-03-17

はじめに

docker環境でwebアプリ開発をしていたのですが、そこに図を表示してみたくなってmatplotlibを入れました。しかしなぜか日本語表記が出来なくて手こずったので、その記録として残します。
他の記事をいろいろ探しましたが、jupyterのdockerイメージを使っているものが多く、ubuntuを使っているものが見つからなかったので、誰かの役に立てば嬉しいです。

参考にさせていただいた記事:
Docker環境のPythonで日本語を使用できるように

Dockerfile

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を使っているので、それも入れてます)

requirements.txt
django
numpy
pandas
matplotlib
seaborn

あとはdocker-compose.ymlに適切なコードを書いて実行するだけです。docker-compose.ymlは特に変更は加えていません。

結果

Screen Shot 2021-03-17 at 21.30.45.png
できた!

まとめ

他のサイトではjupyterイメージで書いているものが多く、途中それでやったほうがよかったのかなと思いましたが、ubuntuでも出来たのでよかったです。最初からデータ分析ライブラリを入れるとわかっていたらjupyterのほうがよかったのでしょうか...。まだそこらへんの知識が全然ないので、もう少し深堀りしていきたいです。
もし何か間違っていたりしたら教えていただけるとありがたいです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0