ゴール
docker run -d -p 8888:8888 -v `pwd`:/home/jovyan/work nnabeyang/jupyter-notebook start-notebook.sh --NotebookApp.token=''
でサーバーを起動したときに、db/development.sqlite3を参照してくれます。
.
├── Gemfile
├── app
├── bin
├── config.ru
├── db
│ ├── development.sqlite3
│ ├── migrate
│ ├── seeds.rb
│ ├── structure.sql
│ └── test.sqlite3
├── note
│ └── test.ipynb
│
...
環境構築
まずdockerを使って、公開されているjupyter-notebookのイメージを取ります。
railsアプリのルート位置にいるとして、次のコマンドを実行すると、イメージを取り、サーバーを起動するところまでしてくれます。
$ docker run -d -p 8888:8888 -v ~/rails_tutorial/money_log:/home/jovyan/work jupyter/datascience-notebook start-notebook.sh --NotebookApp.token=''
あとは、このdockerイメージを今後も使えるようにしておけば目標達成です。まず今起動しているdockerのコンテナIDをdocker psして調べます(ここではコンテナIDがafc4c5294130だったとしましょう)。それを次のようにして後で参照しやすいようにしておきます。
$ docker commit afc4c5294130 nnabeyang/jupyter-notebook:170530
$ docker tag nnabeyang/jupyter-notebook:170530 nnabeyang/jupyter-notebook:latest
(当然ですがnnabeyang/jupyter-notebookなどは適当に使いやすいように変更してください。)
今起動しているコンテナをdocker stop afc4c5294130で止めてから、次のようにするとSQLが使えるjupyter-notebookが起動します。
docker run -d -p 8888:8888 -v `pwd`:/home/jovyan/work nnabeyang/jupyter-notebook start-notebook.sh --NotebookApp.token=''