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対応によって、使いやすくなったと思うので是非お試し下さい。