モチベーション
julia lang の和書が2017/10/1にNTSから出版されました。
これを機に触れてみようと思い立ち、
書籍では v0.4.x
最新は v0.6.0 とのことでこの二つのカーネルを
jupyter-notebook で実行できるようにすることがゴールです。
ついでに v0.6.0 環境には CmdStan を入れておきます。
調査
まったく julia について知らなかったので
公式をチェック
公式 julialang.org
juliabox.com という素敵なサービスも発見
容量が500MBまでとのこと. また, CmdStan も使えない.
juliabox.com
公式 docker image を参考に、Dockerfile を作ってみます
作ったDockerfile
docker run
docker pull datarefine/julialang-docker:latest
docker run --rm -it -p 8888:8888 --name julia datarefine/julialang-docker:latest
docker run
実行後、下記のログが標準出力に表示されるので、そのURLへアクセスする
[C 15:41:32.244 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://0.0.0.0:8888/?token=xxxxxx
オプションについて
-
--rm
: コンテナを止めた後に、そのまま削除 -
-i
: attach していなくても標準出力につないだままにしてくれる -
-t
: 仮のttyに割り当ててくれる -
--name
: コンテナの名前をつける -
-p host_port:container_port
: デフォルトではネットワークは bridge であり,host側のポートとcontainer側のポートをつないでくれる -
--cpuset-cpus=""
: 0-3/1,3など, どの CPU で container を実行するか指定 -
--memory=""
: 4g,8g,など container が使うメモリ数
その他
docker run --rm -it --name julia datarefine/julialang-docker:latest /bin/bash
でbash
が起動し, julia
コマンドが使えます
container 上で実行しているのでcontainer を止めると、
jupyter にアップロードしたファイルは消えます。
公式と変更した点
- BaseImage ubuntu:16.04 -> phusion/baseimage
- プロセスコントロールとしてrunitが導入されている.
- miniconda -> miniconda3
- ENV[CONDA_JL_HOME"]="/path/to/miniconda3"
- この環境変数により IJulia や Conda のパッケージインストールの時に、指定したminiconda3を利用する(Using an already existing Conda installation)
- jupyter-notebook 上で v0.4.7 と v0.6.0 のカーネルを利用できるように.
-
CmdStan をインストール. julia から使えるように.
- ついでに clang++-4.0 をインストール
- gcc が同居する環境だと clang が libc++ を見つけられないらしい(CmdStanでコンパイルエラー)
課題
- libcairo2 によって x11 が入ってしまって、イメージサイズが大きくなってしまう ->小さくしたい
(windows への docker 実行環境導入は別記事で書きます)
書きました.
https://qiita.com/ysaito8015@github/items/1ec358275227d32cbd44