概要

Jupyter lab で Python 以外の言語を利用できる環境を構築する。
尚、当記事では公式の Dockerイメージに Go と Typescript のカーネルを追加するサンプルを記載する。

目次

利用できる Jupyter kernel

対象の言語用のカーネルを追加する事で jupyter でPython 以外の言語を利用する事が出来る。
https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

Dockerfileの作成

ベースとなるイメージは公式のものを使用する
https://jupyter-docker-stacks.readthedocs.io/en/latest/

container/Dockerfile

FROM jupyter/scipy-notebook:lab-3.2.3

USER root

RUN apt-get update
RUN apt-get install -y build-essential

#--------------------------------------------
# Goインストール
#--------------------------------------------
RUN echo "download go - start" \
 && mkdir /tmp/go && cd /tmp/go \
 && wget https://go.dev/dl/go1.17.5.linux-amd64.tar.gz \
 && rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz \
 && echo "download go - end" \
 && rm -rf /tmp/go

#--------------------------------------------
# Go カーネル
#--------------------------------------------
USER jovyan

ENV GOPATH=$HOME/go
RUN mkdir -p $GOPATH
ENV PATH=$PATH:/usr/local/go/bin

RUN echo "setup go kernel - start" \
 && echo "get kernel - start" \
 && env GO111MODULE=off go get -d -u github.com/gopherdata/gophernotes \
 && cd "$(go env GOPATH)"/src/github.com/gopherdata/gophernotes \
 && env GO111MODULE=on go install \
 && mkdir -p ~/.local/share/jupyter/kernels/gophernotes \
 && echo "copy go kernel - start" \
 && cp kernel/* ~/.local/share/jupyter/kernels/gophernotes \
 && echo "copy go kernel - end" \
 && cd ~/.local/share/jupyter/kernels/gophernotes \
 && chmod +w ./kernel.json \
 && sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json \
 && echo "setup go kernel - end"

#--------------------------------------------
# TypeScript カーネル
#--------------------------------------------
RUN npm install -g tslab \
 && tslab install --python=python3 \
 && jupyter kernelspec list

#--------------------------------------------
# ポートバインド設定
#--------------------------------------------
EXPOSE 8888/tcp
EXPOSE 8888/udp

#--------------------------------------------
# jupyter lab起動
#--------------------------------------------
RUN mkdir -p $HOME/work && chmod -R 766 $HOME/work
CMD ["jupyter", "lab"]

docker-compose.yml の作成

docker-compose.yml

version: "3"
services:
    jupyter:
        platform: linux/x86_64
        build:
          context: ./container
        container_name: my-jupyterlab
        volumes:
          - ./work:/home/jovyan/work
        ports:
          - 8888:8888

コンテナ作成/起動

docker-compose up --build -d

Token確認

docker exec -i my-jupyterlab jupyter lab list

Currently running servers:
http://e43d493977dc:8888/?token=427aea993fdb768ef4f442d0b1cd600f56cf73f30bf8d316 :: /home/jovyan

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS