ngx_mruby の動的モジュールをビルドするツール
Docker を使って ngx_mruby を動的モジュールとして手元で簡単にビルドできるようにした。
以下のようなユースケースを想定している。
- すでに別のモジュールを静的モジュールとしてビルドした nginx を使っている環境に新たに ngx_mruby を導入したい。
- ngx_mruby を運用する環境は Linux (CentOS) だが、ビルドは手元の Mac 等で行いたい。
ngx_mruby を組み込んだ nginx パッケージをビルドする類似のツールとして pepabo/ngx_mruby-package-builder があるけど、 1 のような他のモジュールも組み込む必要があるケースにはマッチしない。 2 のケースについては実行環境とビルド環境が揃っているならば、 ngx_mruby 付属のビルドスクリプトで十分。
使い方
- クローンしてきたら
make
コマンドを実行。 - ビルドにそれなりに時間がかかるので ☕ でも飲みながらしばし待つ。
dist
ディレクトリにngx_http_mruby_module.so
とndk_http_module.so
ができる。
お気持ち
ngx_mruby を静的モジュールとして導入すると、後から mrbgem を追加したくなったときや、他のモジュールとの共存する場合に nginx ごとビルドし直すことになる問題があった。 ngx_mruby を動的モジュールとして導入することで、これらを ngx_mruby モジュールに閉じた問題にできるメリットがある。