重要:本リポジトリ公開に関しての注意事項
本リポジトリの内容は、個人的にWebサーバーコンテナ群を起動する際に普段使用している設定をよく使われるであろう基本的な構成(+flask)でまとめた形のものとなります
参考情報として、用途に応じて必要なところだけをピックアップして使用してください
うまく動作しない、書き方がよく分からない等には一切お答えできません (お仕事として有償対応させていただく場合もございます)
各種パスワード等の環境変数やログ設定、表に出すポート設定等を必要に応じて書き換えて使用してください
また、不要なサービスについてはコメントアウトして起動しないようにするとともに、depends_onで指定されている場合は削除する 必要があります
mariadbを起動する
基本的にはlatestを使用するが、バージョン指定したい場合はコメントアウト済みの指定個所を参考に変更してください
rootユーザーのパスワード、初期設定するDB周りの情報等を環境変数として設定してください
ホストマシンとしてM系チップのMacをお使いの場合は、コメントアウトしているplatform記述部分(下記)を有効にしてください
platform: linux/amd64
を追加してください
mariadbを操作するためのGUIツールを起動します
ホストマシンとしてM系チップのMacをお使いの場合は、コメントアウトしているplatform記述部分(下記)を有効にしてください
platform: linux/amd64
を追加してください
php-fpmのアプリケーションサーバーを起動します
拡張モジュール等もインストールするためにDockerfileを使用してbuildします
元々はLaravel用に書いていたものですが、おそらくCodeIgniter 4あたりも動くと思います(未検証)
Webサーバーを起動します
PythonのWebサーバーであるflaskを起動します
コメントアウトしているvolumeのマウントは、nginx側でLaravelを使用しstorageディレクトリにflaskからデータを書き込むことを想定している設定です
- conf
各ミドルウェアのconfigファイルを配置するためのディレクトリ - data
各ミドルウェアのデータを保存するためのディレクトリ - docker
コンテナイメージをbuildするためのDockerfileや関連ファイル群 - logs
各ミドルウェアのログを保存するためのディレクトリ
コンテナ内の/var/log内に出力されるログをマウントして使用するもので、dockerコンテナのログとは別のものです - www
Webサーバー関連のアプリケーション等を格納するディレクトリ
appsがnginxとphp-fpm用、flaskappsがflask用
project_dirをdocker-compose.ymlの設定内容と合わせてください
サンプルでは/media/srcにアプリケーションソースを置くことを想定しています
requirements.txtには他のミドルウェアを使用するためのPyPIパッケージを登録してください
Dockerfile内にインストールする各種拡張モジュールを記述してください
各sh内でdocker-compose.ymlで設定している環境変数を使用しているため、docker-compose.ymlで必ず設定しておく必要があります
なお、各shの内容はおそらく何かを起動しっぱなしにしたかった際に書いたものなので、単にWebサービスとしてのみ使用する場合は内容の変更を推奨します
いずれもかなりコンパクトな設計になっており、本番用として起動する際にはリソース等キャパ周りの見直しをお勧めします
メインのserverディレクティブのrootは、アプリケーションパス(./www/apps)にLaravelを配置して使用する場合の設定です
他のフレームワーク等を使用する場合は環境に合わせて書き換えてください
テスト等で80ポートを使用する設定となっています
本番用にSSL設定する場合は、コメントアウトされている80ポートからhttpsへのリダイレクトを有効とし、メインのserverディレクティブのlistenポートを80から443に変更した上で、ssl_session_tickets, ssl_certificate, ssl_certificate_keyのコメントアウトを外してください
なお、サーバー証明書取得周りの情報はネット上にたくさんありますので、そちらを参考にしてください
バーチャルホストを使用する場合は、コメントアウトされているserver_nameを有効とし、example.com記述箇所を実際使用するホスト名に変更してください