Crowi を手元で開発するために、だいぶ前に suzuki/vagrant-crowi というものを作っていた。名前の通り Vagrant で作った VM の上に Crowi の環境を整えるようなもの。これを作った頃は、ちょうど Vagrant と Ansible を学び始めた頃。
最近になって Docker の勉強をしていたので、同じような開発環境を Docker で作ってみたいなと思って作ってみたのが suzuki/docker-develop リポジトリ。ちょっと名前の範囲が大きい気もするけど。
手元での構成的は、こんな感じで使っている。
Node.js のコンテナを利用していないのは、元々 Mac に nvm をインストールしていたからというのと、そういう人も多いんじゃないかなと思って(思い込んで)手を抜いたというのがその理由。
MongoDB, Elasticsearch のデータはコンテナではなく、Mac(ホスト側)のディレクトリに置く(というかリンク?)している。これで、コンテナを削除しちゃっても大丈夫なはず。Redis はセッション管理にしか使ってないと思うので、特にデータの永続化については考えていない。
まだ、自分でも使い始めたばかりなので、うまくないところがあるかもだけど、今後はこの環境で開発してみようかなと思っている。
なお、Crowi の Docker 環境については、以下の記事やリポジトリもあって、いろいろと参考にさせて頂いた。