言いたいこと
小規模アプリなら、Laravel-Worker、Cron、Nginx、php-fpmを一つにまとめて運用したい!!
と思い作ったのが、全部入りDockerイメージ one-stop-laravel-docker
現在私が趣味で開発しているWEBアプリはこのDocker imageベースのcontainerで運用しています。
どんな構成なのか
- PHP(php-fpm)
- Nginx
- Cron
- Laravel worker
上記プロセスを「supervisord」で起動しています。
どうやって作っている?
Dockerfileを見ていただければすべて載っていますが、
PHP-FPMのDockerイメージに、NginxのDockerFileをそのままマージした、という荒っぽい作りとなっています。
良い点
- アプリ自体は1コンテナで動作するので、管理が楽(もちろん、永続化させる必要のあるデータベースとRedisは別コンテナですが)
- NginxとPHPそれぞれに静的コンテンツを置かなくてもよくなる
- Laravelのコード入れて実行すれいい感じに動いてくれる
悪い点
- Dockerのベストプラクティスに真っ向から勝負を仕掛けている(1コンテナ 1プロセス)
- 規模の大きなアプリには向かない(スケーリングする前提だと向かないかも)