人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

ngx_mrubyのDockerイメージがONBUILDをサポートしました

nagachikaさんの提案で、ngx_mrubyの本家Dockerイメージ(matsumotory/ngx-mruby)において、設定ファイルやコンテンツの読み込みをONBUILD化しました。

この変更における利点は、

  • 設定ファイル等を更新するために必要だったngx_mrubyの本家Dockerfileの再buildが不要になった
  • ngx_mrubyの本家Dockerイメージを活用できるようになった

です。

今後は、ngx_mrubyをGitHubからcloneして本家Dockerfileをビルドしたり本家Dockerfileを弄ることなく、以下のようにFROMでイメージをロードするように記述した自身のDockerfileを用意すれば、ngx_mrubyの本家Dockerイメージを利用しながらも、ngx_mrubyの設定ファイルやコンテンツをイメージ内で活用することができます。

FROM matsumotory/ngx-mruby:latest
MAINTAINER your_name

# 色々処理

ただし、ngx_mrubyのONBUILDは自身のDockerfileをbuildする時のカレントディレクトリからみて、

ONBUILD ADD docker/hook /usr/local/nginx/hook
ONBUILD ADD docker/conf/nginx.conf /usr/local/nginx/conf/nginx.conf

のようにコピーする仕様になっていますので、ご利用の際は自身で作成したDockerfileと同じディクレトリ内に、

  • docker/hook
  • docker/conf/nginx.conf

というディレクトリ構成を取ってファイルを配置するようにして下さい。hook/以下にngx_mrubyのフックスクリプトを用意して、nginx.conf内でロードするようにするとよいでしょう。

ngx_mrubyのDockerイメージのONBUILD対応によって、使いやすくなったと思うので是非お試し下さい。