Julia実行環境として利用できるコンテナイメージ3つを調べてみた
データアナリティクス事業本部の鈴木です。
Juliaは動的型付けでありながら、科学技術計算などにも耐える高い実行性能を備えた言語です。
Juliaは非常に簡単にインストールできますが、コンテナを使って実行環境を準備したいと思い、どのような方法があるのかを調査しました。
検証概要
調査したイメージ
今回は以下の3つのイメージを調べました。
- Docker Hubの公式イメージ
- Jupyter Docker Stacksのdatascience-notebookイメージ
- Visual Studio Code Remote - ContainersのJulia用開発コンテナ
検証環境
- macOS Catalina バージョン10.15.7
- docker desktop Version 3.4.0
- Visual Studio Code バージョン: 1.58.2
- Remote - Containers拡張機能 v0.187.1(プレビュー版)
やってみる
1.Docker Hubの公式イメージ
Official Imageにイメージがあるので、最初にこちらを利用してみましょう。
まず、イメージをプルします。
docker pull julia
REPLを起動して、文字列を表示させてみましょう。以下のコマンドを実行します。
docker run -it --rm julia
REPLが起動しました。
次に、ローカルで事前に準備しておいたスクリプトを実行してみましょう。以下のsample.jlを作成しておきます。
println("Hello world from container!")
以下のコマンドで実行します。
docker run -it --rm -v "$PWD":/usr/myapp -w /usr/myapp julia julia sample.jl # 出力結果 # Hello world from container!
標準出力に文字列が表示されました。
2.Jupyter Docker Stacksのdatascience-notebookイメージ
Jupyter Docker Stacksのdatascience-notebookにはJuliaがインストールされているので、Juliaの実行環境として使うことができます。
JUPYTER_ENABLE_LAB
環境変数を切り替えて、Jupyter NotebookまたはJupyter Labを起動することが可能です。
今回は以下のdocker-compose.ymlでJupyter Labを起動してみます。
version: "3" services: datascience-notebook: image: jupyter/datascience-notebook:514883dc662a volumes: - ./:/home/jovyan/work ports: - 8888:8888 container_name: datascience-notebook-cntainer environment: - JUPYTER_ENABLE_LAB=yes
docker-compose up
で起動した後、ログインします。
LauncherからJuliaのNotebookを選択します。
試しにHello worldを表示するスクリプトを実行してみます。
println("Hello world from container!")
こちらはセルのアウトプットに文字列を表示することができました。
3. Visual Studio Code Remote - ContainersのJulia用開発コンテナ
VS Code Remote / GitHub Codespaces Container DefinitionsにJulia用の開発コンテナ定義が公開されているので利用します。
vscode-dev-containers/containers/julia at main · microsoft/vscode-dev-containers
Remote - Containers拡張機能のインストール
VSCodeのRemote - Containers拡張機能を利用します。未インストールの場合はインストールが必要です。
VS Code Remote Developmentの機能の一つになります。VS Code Remote Developmentについては Visual Studio Code Remote Development をご確認ください。
※ Remote - Containers拡張機能は記事執筆時点ではプレビューになります。以下の動作確認はv0.187.1で行いました。
Julia dev containerで開く
MicrosoftのVS Code Remote / GitHub Codespaces Container DefinitionsのレポジトリからJulia用の階層を開きます。
.devcontainer/
以下を取得して、VSCodeの開発用コンテナで開きたいディレクトリに配置します(以下の画像をご参照ください)。
ウィンドウ左下のマークをクリックすると、コマンドパレットが開くので、Reopen in Contaiiner
を押します。
正常に開くことができると、左下にコンテナ名が表示されます。
試しにHello worldを表示するスクリプトを実行してみます。
println("Hello world from container!")
右上の▷
を押して、実行方法を選択します。今回はREPLで実行してみます。
ターミナルに文字列が出力されました。
最後に
今回は、Juliaの実行環境として利用できる3つのコンテナイメージを紹介しました。
使うイメージによって、コマンドライン・Jupyter・VSCodeとインターフェースが変わってくるので、慣れ親しんでいるものを選んで使うと良さそうです。また、インストールが必要な各種ライブラリは、コンテナに初めから用意しておきたい場合はDockerfileを作成する必要があります。こちらの方法も別の記事で紹介できればと思います。