pgroonga / docker

Dockerfile for PGroonga
https://hub.docker.com/r/groonga/pgroonga
MIT License
35 stars 9 forks source link

Remove separate MeCab build step with CMake based build system #51

Closed otegami closed 4 months ago

otegami commented 4 months ago

ref: https://github.com/pgroonga/docker/issues/40

Now, Groonga can build MeCab together with CMake. So we can remove its build step from alpine/build.sh

ref: https://github.com/groonga/groonga/blob/e5ecc368e7825621374d7b0c7662fa455ebd8dd3/CMakeLists.txt#L764-L769 ref: https://github.com/groonga/groonga/tree/main/vendor/mecab

otegami commented 4 months ago

https://github.com/pgroonga/docker/pull/48 のレビュー対応から進めていく。

otegami commented 4 months ago
b60fd22098f3:/# ruby -v
bash: ruby: command not found
otegami commented 4 months ago

Ruby を入れてあげる。

# apk add ruby
otegami commented 4 months ago
b60fd22098f3:/# cd build/groonga-14.0.4/vendor/
/build/groonga-14.0.4/vendor# ruby download_mecab.rb
download_mecab.rb:62:in `spawn': No such file or directory - patch (Errno::ENOENT)
    from download_mecab.rb:62:in `block (4 levels) in download'
    from download_mecab.rb:61:in `pipe'
    from download_mecab.rb:61:in `block (3 levels) in download'
    from download_mecab.rb:60:in `chdir'
    from download_mecab.rb:60:in `block (2 levels) in download'
    from /usr/lib/ruby/3.3.0/open-uri.rb:162:in `open_uri'
    from /usr/lib/ruby/3.3.0/open-uri.rb:750:in `open'
    from download_mecab.rb:59:in `block in download'
    from download_mecab.rb:57:in `each'
    from download_mecab.rb:57:in `download'
    from download_mecab.rb:73:in `<main>'
b60fd22098f3:/build/groonga-14.0.4/vendor# cat download_mecab.rb
otegami commented 4 months ago

patch コマンドがなさそう。 下記を試すところから、次再開する。

# apk add patch
otegami commented 4 months ago

問題なくうまく行った。

/build/groonga-14.0.4/vendor# ruby download_mecab.rb
patching file src/dictionary.cpp
otegami commented 4 months ago

次にダウンロードしてビルドが通るところまで確認する。

otegami commented 4 months ago

次にダウンロードしてビルドが通るところまで確認する。

ここまで確認できた。

/build/groonga-14.0.4# psql -U pgroonga
psql (12.19)
Type "help" for help.

pgroonga=# CREATE TABLE memos (
pgroonga(#   id integer,
pgroonga(#   content text
pgroonga(# );
CREATE TABLE
pgroonga=# CREATE EXTENSION IF NOT EXISTS pgroonga;
CREATE EXTENSION
pgroonga=# CREATE INDEX pgroonga_content_index
pgroonga-#           ON memos
pgroonga-#        USING pgroonga (content)
pgroonga-#         WITH (tokenizer='TokenMecab');
CREATE INDEX
otegami commented 4 months ago

一気に変更を入れると差分が多いから下記の2つに分けて PR を出していこう。

kou commented 4 months ago

いやぁ、これは一緒じゃないかなぁ。 わけるならまずはalpine/16/だけdoewnload_mecab.rbで、他のalpine/*/はそのまま、とかじゃないかな。でも、そのアプローチでレビューしやすいPRにするのはまだむずかしいんじゃないかな。

otegami commented 4 months ago

了解です。 そしたら今回は少しボリュームが増えてしまいますが、分けずにそのまま行こうと思います。

otegami commented 4 months ago

わけるならまずはalpine/16/だけdoewnload_mecab.rbで、他のalpine/*/はそのまま、とかじゃないかな。

build.sh にて、OS バージョンで分岐する or 別のファイルを呼んで呼び出すくらいしか思いついていないのですが、 今度お時間のあるときにこんなパターンが良いんじゃないみたいなのあったら教えてくださいmm

kou commented 4 months ago

私なら別のファイルでやってみるかな。

otegami commented 4 months ago

ちょっと次回チャレンジしてみます!