この記事はGroonga Advent Calendar20日目の記事です。
リンク先は私がGitHubにUPしている全てのソースコードを検索できるようにしたサイトです。GitHubが苦手な行単位のANDもできます。ブログの原稿もGitHubにあげているので昔書いたことをさくっと検索できて便利です。
内部にGroongaを使ったMilkodeというソフトウェアを使って構築されています。Groonga(Rroonga)はとても性能がよいので数千、数万のくらいのファイル数なら一瞬で検索できます。
MilkodeはRubyで書かれているのですが、最近Dockerを使って簡単に構築、保守できるようなDockerfileを書きました。のでご紹介です。
docker-milkode
ongaeshi/docker-milkode: Milkode's Dockerfile
- Dockerをあらかじめインストールしておいてください
- READMEを上から順に実行します
- Use Data Volume Containerはオプションですが設定しておくことをおすすめします
- アプリケーションコンテナ(milkode)とデータコンテナ(milkode-data)を分けておくことで、アプリケーションコンテナを作り直してもデータの再構築が不要になります。以下のようなときに便利です
- 新しいデータを追加するとき
- milkodeをバージョンアップしたいとき
- データコンテナにGitHubのデータを注入したいときはongaeshi/mycodeの
add_all.sh
あたりが参考になると思います
外部に公開したい
http://mycode.ongaeshi.me はnginxを使っています。robots.txt を作ってロボットの巡回を防いでおかないとそこそこ負荷がかかるので注意。
server {
listen 80;
server_name mycode.ongaeshi.me;
proxy_set_header Host $host;
location /robots.txt {
alias /etc/nginx/robots.txt;
}
location / {
proxy_pass http://127.0.0.1:9292;
}
}
そのうち
- cron
自分のローカルマシンに、社内のイントラネットに、クラウドサーバーにどうぞ。