PGroongaのDockerイメージを作成できるDockerfileを,GitHubおよびDockerHubに公開しています.URLはそれぞれ以下のとおりです.
現在,takehiko/pgroonga:latestのイメージには,以下のソフトウェアを収録しています.
- PGroonga 2.2.1
- Groonga 9.0.7
- MeCab 0.996 + IPADIC 2.7.0-20070801
- PostgreSQL 11 / Alpine Linux
このうちPostgreSQLのバージョンについて,昨日まで,9.6のみだったのですが,10や11のバージョン(ただしPGroongaとGroongaは最新版)でイメージを作れるよう,ブランチの切り替えで対応を試みました.ビルドするには,クローンしたあと,例えば以下のように実行します.
git checkout -b pg-9 origin/pg-9
これで,PostgreSQLは「9.6」で,以前と同じベースイメージ(postgres:9-alpine)に基づくファイル構成に変わります.
ブランチとしてpg-9,pg-10,pg-11,pg-12を作りましたが,現時点ではmasterとpg-11が同一内容です.pg-9からpg-11までについては,テストスクリプトも実行して,期待どおりの動作(MeCabベースとbigramベースのトークナイザーで,検索結果が異なること)を確認しています.
ただ,pg-12についてはビルドに成功していません.「utils/tqual.h: No such file or directory」を含むエラーメッセージが出まして,検索したところ,https://github.com/dimitri/pgextwlist/issues/32を見つけました.PostgreSQL 12そのものではなくそれを用いたextensionのエラー報告のようで,postgres:12-alpineのイメージでは,utils/tqual.hを取り込んで,ビルドがなされていないと考えられます.
今後はPGroonga and/or Groongaの新しいバージョンが出れば,ブランチごとに修正し,手元でビルドと動作確認をしてから,コミットそしてGitHubにプッシュする予定です.ただこれはこれで非効率なので,DRY (Don't repeat yourself)原則に合ったファイル管理を検討したいところです.