• Archive
  • RSS

GMOメディア エンジニアブログ

MySQLで日本語全文検索ができるMroongaのDockerリポジトリーをメンテナンスしています

このエントリーをはてなブックマークに追加.

こんにちは、DBAです。
この記事は Groonga Advent Calendar 2015 の1日目の記事です!

弊社ではMySQLを通した全文検索に Mroonga を利用しており、今までこのブログでも

  • mroongaをXtraDB Clusterで冗長化できそうなメモ | GMOメディア エンジニアブログ 
  • Tritonn(MySQL 5.0)からMroonga(MySQL 5.6)に割とさっくりデータを移行する | GMOメディア エンジニアブログ 
  • Mroonga 3.11に追加されるDATETIME型のORDER BY最適化 | GMOメディア エンジニアブログ
  • ConoHa presents - Groonga “How-To” Talksでバックアップについてしゃべった | GMOメディア エンジニアブログ

などなどMroonga関連の記事をいくつか書いてきました。

俺は(主にクラッシュした時に再現を試すためのクリーンな環境を作るために) Docker を愛用していて、そんな話をしていたら流れで Mroonga公式のDockerイメージ をメンテナンスすることになりました。

Docker Hubのタグのページ から確認してもらうのが見やすいかと思いますが、MySQLとMroongaのバージョン(原則、そのバージョンのMroongaがリリースされた時点で対応しているMySQLの最新バージョン)でタグを打っています。

image

ですので、ここから使いたいMroongaのバージョンを選ぶと何となく試せる環境が簡単に手に入るわけです。

例えば、MySQL 5.7 + Mroonga 5.09の組み合わせを試したい場合、

$ time sudo docker run -d groonga/mroonga:mysql579_mroonga509
Unable to find image 'groonga/mroonga:mysql579_mroonga509' locally
mysql579_mroonga509: Pulling from groonga/mroonga
..
Digest: sha256:b7c5cbfdf292565b6c18aaca1142a22f28676923939bac5d775e9f5a957f6c1c
Status: Downloaded newer image for groonga/mroonga:mysql579_mroonga509
e9ff2801c6f823990ed8b1b74124472abd2ec9c475eaf30c6773efc9ef3493e4real    0m58.928s
user    0m0.204s
sys     0m0.132s

おー、思ったより速い。試したのはConoHaの一番お安いVMなので、大概どこの環境でも思い立ってから1分かそこいらでMroongaの最新版が試せそうです。

Docker Hubのページにも書いてありますが、アカウントはroot@’%’がパスワードなしで設定されていますので、インターネットに接しているところで-pや-Pでポートを公開するのはやめておいてください。

あとはホストからコンテナにアクセスするためにIPアドレスを確認して、

$ sudo docker ps | grep mroonga
e9ff2801c6f8        groonga/mroonga:mysql579_mroonga509                                "/bin/sh -c '/usr/sb   4 minutes ago        Up 4 minutes                 3306/tcp            focused_feynman
$ sudo docker inspect -f "{{.NetworkSettings.IPAddress}}" e9ff2801c6f8
172.17.0.1

$ mysql -h 172.17.0.1 -uroot
mysql> SHOW PLUGINS;
..
| Mroonga                    | ACTIVE   | STORAGE ENGINE     | ha_mroonga.so        | GPL     |
..
46 rows in set (0.02 sec)

無事、インストールまでされていることが確認できました。TokenMecabも使える状態になっている(つもり)ので、テストにはもってこいかなと思っていたりいなかったり。

yumでインストールできるmysql57-community-mroongaに比べて、skip-validate-passwordしてあるのとcharacter-set-server= utf8mb4してあるのがちょっと違うところです。

今のところdatadirをホスト側からマウントしようとするとこのコンテナは動かない(というか、セットアップ内容が飛ぶので動くけどMroongaも入っていないし接続もできない)のですが、そのうちなんとかしたいと思っています。

Mroonga本体にコントリビュートは敷居が高いけど、Dockerfileなら何とかなる…という方は是非PRしてください。お待ちしております :)

https://github.com/mroonga/docker

    • #MySQL
    • #Mroonga
    • #Groonga
  • yoku0825 Avatar Posted by yoku0825
  • 8 years ago
  • Permalink
Share

Short URL
このエントリーをはてなブックマークに追加

TwitterFacebookPinterestGoogle+
← Previous •Next →

Logo

GMOメディア エンジニアブログは Creator Blog として生まれかわりました。
Webサイトやアプリを作りながら、役に立ちそうな技術情報やたのしい話を書きます。私たちはGMOメディア株式会社のエンジニアです。
yoku0825 Avatar
Posted by yoku0825

TAGS

RECENT POSTS

    • RSS
    • Random
    • Archive
    • Mobile

    Effector Theme by Pixel Union Powered by Tumblr