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 pull tumf/rocksdb-ruby
$ docker run -it tumf/rocksdb-ruby irb
irb(main):001:0> require 'rocksdb'
=> true
こんな感じでお楽しみください。