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