Jupyter Docker StacksのイメージにJuliaのパッケージを追加する
データアナリティクス事業本部の鈴木です。
Jupyter Docker Stacksのdatascience-notebookにJuliaのパッケージを追加したイメージを作成する方法を紹介します。
検証の詳細
検証すること
datascience-notebookにJuliaのパッケージを追加したイメージを作成します。
Jupyter Docker Stacksのdatascience-notebookイメージを利用することで、Python・R・Juliaが利用できるJupyter NotebookおよびJuyterLab環境がすぐに利用できます。
Juliaについては、イメージにそれほど多くのパッケージが入っておらず、パッケージを追加する必要があります。 例えば、Juliaで可視化を行う際、まずはPlotsの利用が思い当たると思いますが、Plotsも初期状態ではインストールされていないため(少なくともjupyter/datascience-notebook:2021-10-07のタグのイメージでは)、ユーザーが追加する必要があります。
前提
以下の環境で検証を行いました。
- Docker version 20.10.7
- macOS Catalina バージョン10.15.7
- jupyter/datascience-notebook:2021-10-07
やってみる
Dockerfileの作成
datascience-notebookを元に、パッケージを追加したイメージを作成するため、Dockerfileを作成します。
今回は以下のようなDockerfileを作成しました。
FROM jupyter/datascience-notebook:2021-10-07 USER ${NB_UID} # Add Julia packages. RUN julia -e 'import Pkg; Pkg.update()' && \ julia -e 'import Pkg; Pkg.add("Plots")'
インストール方法は、datascience-notebookのDockerfileを参考にしました。
また、上記はJulia環境自体の記載も多く、パッケージの追加のみを記載した例も確認したかったので、こちらは以下のSageMaker Studio Custom Image SamplesのDockerfileを参考にしました。
ビルド・起動してみる
Dockerfileができたので、後はイメージをビルドし、起動します。
Dockerコマンドでは以下のようにできます。
## イメージをビルドする。 docker build -t nayuts/julia-custom-datascience-notebook . ## コンテナを起動する。 docker run --rm -p 8888:8888 -e JUPYTER_ENABLE_LAB=yes -v "${PWD}":/home/jovyan/work nayuts/julia-custom-datascience-notebook
docker-composeでもビルドと起動ができます。
version: "3" services: julia-custom-datascience-notebook: build: . image: nayuts/julia-custom-datascience-notebook volumes: - ${PWD}/:/home/jovyan/work ports: - 8888:8888 container_name: julia-custom-datascience-notebook environment: - JUPYTER_ENABLE_LAB=yes
例えば以下のようにファイルを配置し、docker-compose up
でビルド・起動します。
## ファイル配置の確認 tree . # . # ├── Dockerfile # ├── docker-compose.yml ## コンテナの起動。初回はイメージをビルドする。 docker-compose up
動作を確認する
JupyterLabにログインし、動作を確認します。 以下のように、Plotsを使い、グラフを描写できることが分かりました。
最後に
今回は、Jupyter Docker Stacksのdatascience-notebookにJuliaのパッケージを追加したイメージを作成しました。
JupyterでJuliaを使いたい方の参考になれば幸いです。