概要
Dockerを使ってJupyterLab上でRを実行する環境を構築する方法を紹介します。
前回、DockerによるRStudio Serverの構築方法を紹介しました。
しかし、私は普段Pythonを使うことが多く、開発環境としてはRStudioよりJupyterLabの方が馴染みやすいと感じました。前回と同じようにDockerを使ってR+JupyterLabの開発環境を構築しましたので、その方法を紹介します。
使用するDockerイメージ
DockerイメージとしてはRocker Projectで公開されている rocker/binder
を使用します。このイメージの説明は下記のページにあります。
rocker/binder
イメージは、前回使用した rocker/tidyverse
をベースイメージとして派生したイメージのため、RやRStudio Server、tidyverseパッケージ等も含まれています。そこに地理空間系のパッケージやJupyterが追加されたものになります。
ちなみに、イメージの名前にもなっているBinderとは、GitHub等で公開されたJupyter Notebook ファイル (.ipynb
) をWeb上で実行できる環境を提供するサービスのようです。
今回はBinderのサービスは利用しませんが、RとJupyterLabの環境が整ったイメージとして rocker/binder
を利用します。
コンテナの起動
docker compose
コマンドによりコンテナを起動するため、以下のように compose.yaml
を作成します。
services: jupyterlab: image: rocker/binder ports: - 8888:8888 volumes: - type: bind source: ./rstudio target: /home/rstudio command: /bin/bash -c "jupyter lab --ip=0.0.0.0 --no-browser --IdentityProvider.token=''"
rocker/binder
イメージのデフォルトではJupyterLabではなくJupyter Notebookが起動するようになっています。ここではJupyterLabを使用するため、command
オプションにてJupyterLabの起動コマンドを記載しています。
また、セキュリティリスクには留意する必要がありますが、起動コマンドにおいて --IdentityProvider.token=''
を指定してブラウザでのアクセス時のトークンの入力を省略しています。
そして、compose.yaml
を保存したディレクトリにおいて、docker compose
コマンドを実行することでコンテナが起動します。
docker compose up -d
ブラウザからアクセス
コンテナが起動された状態でブラウザから localhost:8888
にアクセスすると、Rが使用可能なJupyterLabが利用できます。
また、上記のNotebookのメニューの中にRStudioという項目もありますが、これをクリックすると、、、
同じ環境でRStudioも利用できます。同じ環境で必要に応じてJupyterLabとRStudioを使い分けられるので便利です。