Docker上にWordCloud + MeCab +Jupyter環境を構築したがはまったので、 非常に雑だがメモしておく。
はまったこと
- MeCabを利用しようとしたら、以下のエラーが出る
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
以下を実行して解決
ln -s /etc/mecabrc /usr/local/etc/mecabrc
- WordCloudで利用する日本語フォントがない
以下を実行して解決
RUN curl -L https://moji.or.jp/wp-content/ipafont/IPAexfont/ipaexg00401.zip > font.zip RUN unzip font.zip RUN mkdir -p ~/.fonts RUN cp *ttf ~/.fonts RUN fc-cache -f -v # optional
作成したDockerfile
FROM python:3.7 RUN apt-get update && apt-get install -y \ apt-utils \ python3-setuptools \ mecab libmecab-dev mecab-ipadic-utf8 \ git curl RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - \ && apt-get install -y nodejs RUN apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN pip --no-cache-dir install \ autopep8 \ jupyterlab_code_formatter \ sklearn \ jupyterlab \ ipykernel \ scipy \ numpy \ matplotlib \ pandas \ nltk \ mecab-python3 \ gensim \ wordcloud \ && \ python -m ipykernel.kernelspec ENV CONFIG /root/.jupyter/jupyter_notebook_config.py ENV CONFIG_IPYTHON /root/.ipython/profile_default/ipython_config.py RUN jupyter labextension install @jupyterlab/toc \ @lckr/jupyterlab_variableinspector \ @ryantam626/jupyterlab_code_formatter \ @jupyter-widgets/jupyterlab-manager && \ jupyter serverextension enable --py jupyterlab_code_formatter && \ jupyter labextension enable toc jupyterlab_variableinspector \ jupyterlab-manager && \ jupyter notebook --generate-config --allow-root && \ ipython profile create RUN echo "c.NotebookApp.ip = '*'" >>${CONFIG} && \ echo "c.NotebookApp.port = 8888" >>${CONFIG} && \ echo "c.NotebookApp.open_browser = False" >>${CONFIG} && \ echo "c.NotebookApp.allow_root = True" >>${CONFIG} && \ echo "c.NotebookApp.iopub_data_rate_limit=10000000000" >>${CONFIG} && \ echo "c.MultiKernelManager.default_kernel_name = 'python3'" >>${CONFIG} RUN echo "c.InteractiveShellApp.exec_lines = ['%matplotlib inline']" >>${CONFIG_IPYTHON} # port EXPOSE 8888 # Run Jupyter Notebook WORKDIR "/root/work" RUN ln -s /etc/mecabrc /usr/local/etc/mecabrc RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git RUN curl -L https://moji.or.jp/wp-content/ipafont/IPAexfont/ipaexg00401.zip > font.zip RUN unzip font.zip RUN mkdir -p ~/.fonts RUN cp *ttf ~/.fonts RUN fc-cache -f -v # optional CMD ["jupyter", "lab"]
Docker-Compose
version: '3' services: app: build: . ports: - "8888:8888" volumes: - ./work:/root/work
参考URL
dockerfileを書く際に非常に参考にさせていただきました。 ありがとうございます。 tonop.cocolog-nifty.com
MeCabの問題調査時に参考にさせていただきました hakasenote.hnishi.com
WordCloudの問題対応時に参考にさせていただきました。 qiita.com