Skip to content

j-ohashi/Webserver-container-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Webserver-container-sample

重要:本リポジトリ公開に関しての注意事項
本リポジトリの内容は、個人的にWebサーバーコンテナ群を起動する際に普段使用している設定をよく使われるであろう基本的な構成(+flask)でまとめた形のものとなります
参考情報として、用途に応じて必要なところだけをピックアップして使用してください
うまく動作しない、書き方がよく分からない等には一切お答えできません (お仕事として有償対応させていただく場合もございます)


docker-compose.ymlについて

各種パスワード等の環境変数やログ設定、表に出すポート設定等を必要に応じて書き換えて使用してください
また、不要なサービスについてはコメントアウトして起動しないようにするとともに、depends_onで指定されている場合は削除する 必要があります

db

mariadbを起動する
基本的にはlatestを使用するが、バージョン指定したい場合はコメントアウト済みの指定個所を参考に変更してください
rootユーザーのパスワード、初期設定するDB周りの情報等を環境変数として設定してください

ホストマシンとしてM系チップのMacをお使いの場合は、コメントアウトしているplatform記述部分(下記)を有効にしてください

platform: linux/amd64

を追加してください

phpmyadmin

mariadbを操作するためのGUIツールを起動します

ホストマシンとしてM系チップのMacをお使いの場合は、コメントアウトしているplatform記述部分(下記)を有効にしてください

platform: linux/amd64

を追加してください

php

php-fpmのアプリケーションサーバーを起動します
拡張モジュール等もインストールするためにDockerfileを使用してbuildします
元々はLaravel用に書いていたものですが、おそらくCodeIgniter 4あたりも動くと思います(未検証)

nginx

Webサーバーを起動します

flask

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用

コンテナイメージ作成ファイル群(./docker)について

flask

project_dirをdocker-compose.ymlの設定内容と合わせてください
サンプルでは/media/srcにアプリケーションソースを置くことを想定しています
requirements.txtには他のミドルウェアを使用するためのPyPIパッケージを登録してください

php-fpm

Dockerfile内にインストールする各種拡張モジュールを記述してください
各sh内でdocker-compose.ymlで設定している環境変数を使用しているため、docker-compose.ymlで必ず設定しておく必要があります
なお、各shの内容はおそらく何かを起動しっぱなしにしたかった際に書いたものなので、単にWebサービスとしてのみ使用する場合は内容の変更を推奨します

各ミドルウェアのconfig(./conf配下のファイル群)について

いずれもかなりコンパクトな設計になっており、本番用として起動する際にはリソース等キャパ周りの見直しをお勧めします

Nginx

conf/nginx/conf.d/default.conf

メインの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記述箇所を実際使用するホスト名に変更してください

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors