MyUtils

View on GitHub

マルチコンテナアプリケーション

原則として、「1 つのコンテナーでは 1 つのことだけを行います。そうするのが一番うまくいきます。 」

理由は色々あるが、とりあえずのメリットを以下に上げる。

  1. コンテナーを別々にすれば、バージョン管理や更新操作を個別に行うことができます
  2. データベースとは別にして、API やフロントエンドをスケーリングしやすい
  3. 1 つのコンテナーをデータベース用としてローカルで利用し、本番環境ではサービスを利用してデータベースを管理することができます。 そうすればデータベースをアプリとともに提供する必要がありません
  4. プロセスを複数実行するにはプロセスマネージャーが必要です(コンテナーが起動するプロセスは 1 つです)。 そうなるとコンテナーの起動や停止が複雑になります

とりあえず、手動でnetworkを作成、各コンテナを同じネットワーク上に参加させることで、実現できはする・・・

しかし、Docker Desktop上で別々のコンテナがそれぞれ見えてうざい、

そここで、 docker-composeを使うことで、まとめて使うことができる

以下のコマンドで作成できる

docker compose -p <プロジェクト名> -f <ファイル名> up -d