2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker+IRuby(rubydata/datascience-notebook)にgemを追加して使う

Posted at

Docker イメージ rubydata/datascience-notebook にはデータサイエンス関連の gem があらかじめインストール済みになっていますが、それ以外の gem を使いたい場合の手順です。

単に Dockerfile に追記すればいいだけなんですが、「Docker + IRuby 使ってみたいけどまだ Docker についてよく知らない」みたいな人もいるかなと思ってメモしてみます。


使いたい gem が追加されていない状態だとこうなりますね(素の rubydata/datascience-notebook を使った場合)。

image.png

今回は例として svg-graph という gem で試しています。


やり方はいろいろありそうですが、今回は rubydata/datascience-notebook をベースにしたイメージを作る方法にしました。

まずは適当な作業ディレクトリに Dockerfile というファイルを置き、以下の内容で保存します。

# Dockerfile

# ベースイメージの指定
FROM rubydata/datascience-notebook

# 使いたい gem をインストールする
RUN gem install svg-graph

今書いた Dockerfile の内容にしたがってイメージをビルド。

docker build -t my-datascience-notebook:test .

実行。

  # 最低限ならこう
docker run --rm -p 8888:8888 \
  my-datascience-notebook:test

  # 実際使う場合はこんな感じ
docker run --rm -p 8888:8888 \
  -v $(pwd):/home/jovyan/work \
  --name my_datascience_notebook \
  my-datascience-notebook:test

実行するとターミナルに以下のように表示されるので、URL(http://127.0.0.1:〜)をコピーしてブラウザで開く。

[C 2024-02-18 23:27:59.564 ServerApp] 
    
    To access the server, open this file in a browser:
        file:///home/jovyan/.local/share/jupyter/runtime/jpserver-6-open.html
    Or copy and paste one of these URLs:
        http://bbfe0f483910:8888/lab?token=09e596ae99c4f53d1349b7ba074d71f6782619f70ddbc75b
     or http://127.0.0.1:8888/lab?token=09e596ae99c4f53d1349b7ba074d71f6782619f70ddbc75b

ブラウザで開いたときの最初の画面。
Notebook>Ruby〜 をクリックして新規ノートブックを開く。

image.png


こんどは require できました。
(セルにコードを書いて Ctrl+Enter で実行)

image.png


せっかくなのでもうちょっとやってみます。

image.png

使えますね。

この記事を読んだ人は(ひょっとしたら)こちらも読んでいます

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?