Dockerで自己証明書https環境のJupyterlabを構築
何となく自分のPC環境でJupyterNotebook試したくなったのでお手軽に準備できるものないか探していたところDockerで環境構築できるとのことで早速準備してみました。まぁすべてコピペで完成ですが、とりあえず備忘録として載せておこうかなと。
Google Colab使った方がお手軽なのはわかっているんですが、気軽に試したいのといろいろと環境を足しこんでいくとかあるかもしれないので・・・手許にほしいと思って準備しました。
◆事前準備およびDockerfile等
・Dockerfile
FROM jupyter/datascience-notebook
USER root
WORKDIR /tmp
# MeCab + mecab-ipadic-NEologd (/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd)
RUN apt-get update \
&& apt-get install -y git mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8 file patch make
RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
RUN mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -y
RUN pip install mecab-python3
RUN cp /etc/mecabrc /usr/local/etc/
# CRF++ (Cabochaで必要)
RUN wget -O /tmp/CRF++-0.58.tar.gz 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ' \
&& cd /tmp/ \
&& tar zxf CRF++-0.58.tar.gz \
&& cd CRF++-0.58 \
&& ./configure --prefix=/usr/local \
&& make \
&& make install \
&& ldconfig \
&& rm -Rf CRF++-0.58.tar.gz \
&& rm -Rf CRF++-0.58 \
&& ldconfig
# Install CaboCha
# GoogleDriveからコマンドラインでダウンロードがうまくいかないので手動でダウンロ ードしたファイルをコピー
# 配布先URL:https://drive.google.com/drive/folders/0B4y35FiV1wh7cGRCUUJHVTNJRnM?resourcekey=0-ym0BJTHMkjw3y1AEgwwaxA
COPY cabocha-0.69.tar.bz2 /tmp
RUN cd /tmp \
&& tar jxf cabocha-0.69.tar.bz2 \
&& cd cabocha-0.69 \
&& ./configure --prefix=/usr/local --with-mecab-config=`which mecab-config` --with-charset=utf8 \
&& export C_INCLUDE_PATH=/usr/local/include:$C_INCLUDE_PATH \
&& export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH \
&& export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRRY_PATH \
&& export PATH=/usr/local/bin:$PATH \
&& make \
&& make install \
&& ldconfig \
&& cd python \
&& python setup.py build \
&& python setup.py install \
&& rm -Rf cabocha-0.69.tar.bz2 \
&& rm -Rf cabocha-0.69
# Word2vec(gensim)
RUN pip install gensim
# 必要なツールとIPAフォントをインストールします
RUN apt-get update && apt-get install -y gnupg curl fonts-ipafont fonts-ipaexfont
RUN echo "font.family : IPAexGothic" >> /opt/conda/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc
# Google Chromeをインストールします
RUN wget https://dl.google.com/linux/linux_signing_key.pub \
&& apt-key add linux_signing_key.pub \
&& echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update \
&& apt-get install -y google-chrome-stable \
&& google-chrome --version
# Chrome Driverをインストールします
RUN CHROMEDRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` \
&& curl -sS -o /tmp/chromedriver_linux64.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip \
&& unzip /tmp/chromedriver_linux64.zip \
&& mv chromedriver /usr/local/bin/
# PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local/share/jupyter'
# となぜか怒られるのでとりあえず所有者を変更
RUN chown -R jovyan /home/jovyan/.local
USER jovyan
# selenium導入
RUN pip install selenium
WORKDIR /home/jovyan
・docker-compose.yml
version: "3.9"
networks:
Jupyter_net:
name: Jupyter-network
services:
notebook:
#image: jupyter/datascience-notebook
build:
context: .
dockerfile: Jupyterimage
# ポートの設定("ホスト:コンテナ")
ports:
- 8888:8888
environment:
- GEN_CERT=yes
- JUPYTER_ENABLE_LAB=yes
- GRANT_SUDO=yes
expose:
- 8888
networks:
- Jupyter_net
volumes:
- ./work:/home/jovyan/work
command: start-notebook.sh --NotebookApp.token=''
restart: always
◆参考サイト
・JupyterDocker
https://qiita.com/hgaiji/items/edf71435d0565257f980
https://github.com/Paperspace/jupyter-docker-stacks/blob/master/datascience-notebook/README.md
・https化、パスワード設定
https://qiita.com/gnsnghm/items/22a27023757dadc4ec69
https://www.xn--ebkc7kqd.com/entry/jupyter-change-pass
https://akitoshiblogsite.com/docker-jupyter-jovyan-password/
・pyenvインストール
https://outputable.com/post/start-python/
なんかパスワードがうまく設定できないのが少し気に入らない。Dockerイメージのshが古いのか定かではないけど、生成したargon2ではだめでSHA1でないとNGみたいな感じで言われててどうにもこうにもうまくいかないようだ・・・。
コメント