FROM jupyter/datascience-notebook
# 公式のイメージではユーザーがjovyan(Jupyter Userのことをこう呼ぶらしい)
# 深い意味はなく他ユーザーを作成するが省略可能
USER root
RUN groupadd student && useradd -m -g student student
RUN mkdir /home/student/notebooks
RUN chown -R student:student /home # プラグインインストールには/home/jovyan以下への権限が必要
# vimキーバインドのプラグインインストール
RUN jupyter labextension install jupyterlab_vim
# 黒背景設定を追加
RUN mkdir -p /home/jovyan/.jupyter/lab/user-settings/@jupyterlab/apputils-extension
RUN echo '{"theme":"JupyterLab Dark"}' > \
/home/jovyan/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings
# 作成したユーザーへ変更
USER student
WORKDIR /home/student
version: '3'
services:
jupyterlab:
build: .
ports:
- '8888:8888'
volumes: # カレントディレクトリの/notebooks以下をマウント
- "./notebooks:/home/student/notebooks"
command: start.sh jupyter lab
|.
├── Dockerfile
├── docker-compose.yaml
└── notebooks
├── foo.ipynb
└── bar.ipynb
のように配置して
docker-compose up
で起動、ターミナル上に表示されるアドレスにブラウザでアクセスしてJupyterLabへ
なぜJovyanかはGitHubのIssueで議論されていました、そのままでも問題は特にないかと思います(ユーザー別に作ってるのはこのIssue探り当てるまでちょっと気持ち悪かった、ただそれだけです