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みたいな感じで言われててどうにもこうにもうまくいかないようだ・・・。
コメント