Go to list of users who liked
Share on X(Twitter)
Share on Facebook
More than 5 years have passed since last update.
Pythonista以外が環境を汚さずにJupyter Notebookに触れる方法 あるいは,Rubyist以外が環境を汚さずにJupyter NotebookでRubyに触れる方法
TL;DR
- Jupyter Notebookがアツい! RubyとかElixirも動かしてみたい!
- Dockerコンテナで動かせば楽!
- Docker ToolboxだけでOK!
- Pythonの知識なくても環境構築できる
- RubyやElixirの知識がなくてもJupyter Notebook上でそれらの言語が扱える
Jupyter Notebookについて
Jupyter Notebookがキテる!という話は色々なところでなされているため本稿では省略する:
- Jupyterがすごい勢いでやってくるからお前ら備えとけ(IPython Notebook + R) - Qiita
- Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ
- 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
このJupyter Notebook,Pythonista以外にとっては環境構築が面倒であるという欠点(?)がある.よくわからないまま言われるがままに環境を整えることもできる.が,あとで本格的にPythonを始めようとしたときに頭を抱えることになりかねない.Pythoninstaではない人はPythonのベストプラクティスを知らないことが多いからだ.
また,Jupyter Notebookはkernelというものを利用することでPython以外の言語を動かすことも可能である.が,例えばRubyを普段触らない人がこれをセットアップするのは非常に面倒くさい.Rubyistではない人はRubyのベストプラクティスを知らないことが多いからだ.この問題はあらゆるKernelを導入するときに同じように言える.
このJupyter Notebookのような,「(自分にとって)よくわからない環境」を構築するのにはDockerが向いているような気がする.ということで,本稿ではそのやり方について説明する.
Docker Toolbox
Docker ToolboxにはDocker Client,Docker Machine,Docker Compose,Docker Kitematic,VirtualBoxが含まれる.ローカルでDocker使いたければとりあえずこれ入れとけばなんとかなる.
まだ使ったことのない人はとりあえず以下のコマンドでDocker Machineを動かしておく.
$ docker-machine create --driver virtualbox dev$ eval $(docker-machine env dev)DockerでJupyter Notebookを動かす
Jupyter NotebookのGitHub repoを見ると,Dockerfileが含まれていることがわかる.今回はこれを参考にして,各言語のカーネルごとにDockerfileを作っていく.
とりあえずサンプルとして,Ruby及びElixirのkernelが入ったDockerfileを用意してあるので,これを元にDockerfileを書いていく(=>izumin5210/notebook-dockerfiles).
FROM izumin5210/iruby-notebook基本はこれだけ.なんらかのRubygemsを利用したい場合は,Dockerfileにgem installを記述していく.
FROM izumin5210/iruby-notebookRUNgeminstallrailsローカルにGemfileを用意しておいて,それをCOPYしbundle installするのでもOK
source'https://rubygems.org'gem'rails'FROM izumin5210/iruby-notebookADD Gemfile .RUNbundleinstallあとはこのDockerfileをビルドして起動すればJupyter Notebookが利用できる.
$ docker build -t=iruby-notebook .$ docker run -p 8888:8888 -v "$(pwd):/notebooks" iruby-notebook毎回docker runのオプションを書くのが面倒な人は,docker-compose.ymlを書いておきdocker-compose upを叩くようにすると幸せになれそう.
iruby-notebook:build:.ports:-8888:8888volumes:-.:/notebooksReferences
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
