Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新(準備中)

Jan 14, 2021 - コメント - 日記

RubyでRocksDBつかうためのDockerイメージ

RocksDB は組み込みKeyValueStore型のデータベースです。Googleの公開しているLevelDB のForkで、Facebookが公開しています。ちょっとした情報収集系のスクリプト動かすのには便利でよく使っているのですが、コンパイルが少し厄介なのでこの機会にDockerfileをちゃんと書くことにしました。

最終的に出来上がったのはgithubにあげてあります。

github: tumf/rocksdb-ruby-docker

docker hubはこちらから

docker hub: tumf/rocksdb-ruby-docker

Dockerfile

せっかくなので書いたDockerfileについてメモを残します

使っているのはRocksDBの現時点での最新版6.15.2とRuby2系の最新版2.7.2で冒頭のARGでバージョンを切り替えられるようになっています。

ARG rocksdb_version="6.15.2"
ARG ruby_version="2.7.2"

現状、Ruby3にするとビルド失敗するので今後の課題。

RocksDBはC++で書かれていて、開発系のライブラリに依存するので、マルチステージビルドで実装してます。最終的にはruby-alpineイメージを採用。

イメージサイズはこんな感じ。 Docker Image Size (latest by date)

使い方

$ docker pull tumf/rocksdb-ruby
$ docker run -it tumf/rocksdb-ruby irb
irb(main):001:0> require 'rocksdb'
=> true

こんな感じでお楽しみください。