Julia のテスト環境を Docker でサクッと用意する



この記事のまとめ:
  • Julia が動く Jupyter Notebook を Docker で立ち上げる方法をまとめています。
  • Julia の Docker イメージに追加パッケージをあらかじめインストールしておく方法をまとめています。
背景

Julia 言語には以前から MATLAB の代用として興味があったのですが、初めて Julia を試したときは v1.0 にも満たない状況で、なかなかうまく動かせないこともありました。今日現在では v1.4 になり、文献も増えてきて、安定的に動かせる状況になってきたので Julia のテスト環境を Docker で用意しようと思います。 なお、本記事では Julia の説明や、Docker の説明は扱いませんので、それらの知識があることを前提にしています。

今回立ち上げる Julia のテスト環境について

今回 Docker で立ち上げる Julia のテスト環境は、基本的に Jupyter Notebook 、もしくは Docker コンテナー内で Julia の REPL 上かコマンドラインで Julia のコードを実行することをターゲットとしております。IDE として Juno (Atom) を使ってみようとネットワーク経由の X11 で表示してみたものの Atom が重すぎ、使い物にならなかったので、Jupyter Notebook を使っています。 また、Docker をサクッと立ち上げるために docker-compose を使っています。

サンプル設定の説明

サンプルの設定は私の GitLab のリポジトリーに置いておきました。

ファイル構成はこのようになっております。

.
├── docker-compose.yml
├── exec-julia-in-docker.sh
├── julia
│   ├── Dockerfile
│   └── packages.jl
└── README.md
Jupyter Notebook の起動

下記のコマンドなどで docker-compose.yml を使ってコンテナーを起動すると Jupyter Notebook が自動的に立ち上がりますので、8888 ポートにブラウザーでアクセスすれば Jupyter Notebook が開くはずです。

docker-compose up -d

また、ログイン時にパスワードを聞かれます。コンテナーの起動のたびにトークンを入力するのも面倒だったのでパスワードとして、”julia” を設定しています。

Jupyter Notebook のパスワードの設定方法は下記を参考にいたしました。パスワードを変更したい場合には、下記を参考にdocker-compose.yml 内の command にある --NotebookApp.password オプションの値を変更すればよいです。

追加パッケージのインストール

あらかじめコンテナーに Julia の追加パッケージをインストールしておきたいことはあると思います。今回はサンプルとしてコンテナーのビルド時に追加パッケージをインストールするようにしました。 julia/packages.jl に Julia のパッケージマネージャーに登録されているパッケージと GitHub にあるパッケージをインストールするコードを書いておき、コンテナーのビルド時にそれを実行するように julia/Dockerfile に記載しています。

Julia REPL の実行

コンテナー内で Julia REPL を実行するコマンドを毎回入力するのが面倒だったので、シェルスクリプトとして、 exec-julia-in-docker.sh を用意しています。実行すれば Julia の REPL が立ち上げります。

$ sh exec-julia-in-docker.sh
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.3.1 (2019-12-30)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia>

今回は以上です。 最後まで読んでいただき、ありがとうございます。

コメント

このブログの人気の投稿

LinuxでのnVidia GPUのオーバークロック・電力チューニング方法