0
0

[Laravel10] Laravel Sailを使用せず、DockerComposeを自前で用意する

Posted at

はじめに

Laravel Sailを使用せず、自前でDocker Compose環境を構築します。

※ なお、公式ではLaravel Sailの使用が勧められております。

本記事は暫定版であり、今後、Laravelの実装学習が進むにつれ更新していく予定です。

Laravel Sailについて

Laravelのプロジェクトを開始するにあたり、開発環境としてLaravel Sailを使用するか悩みました。

SailのPHPコンテナのDockerfileを確認してみると、artisan serve経由でPHPのビルトインサーバーを使用しているようで、apacheやnginxなどのWebサーバーのコンテナは存在しませんでした。

このウェブサーバーは単一のシングルスレッドプロセスしか実行しないので、 リクエストがブロックされると、PHP アプリケーションはストールします。

デバッグ作業中に中断すると、リクエストを受け付けなくなってしまうということでしょうか。機会があれば検証してみたいと思います。

webサーバー構成にも対応してほしいというのが正直なところです。

Docker Compose 構成

Docker Composeの構成を記述します。

サービス一覧

  • app
  • app_cron
  • app_queue
  • web
  • db_pgsql
  • db_pgsql_admin
  • db_mysql
  • db_mysql_admin
  • db_redis
  • db_redis_admin
  • db_memcached
  • db_mongo
  • db_mongo_admin
  • mail_mailhog
  • mail_mailpit

app

php-fpmで動作するアプリケーションサーバー。
LaravelにHTTPリクエストを処理させます。

app_cron

cron用のサーバー。
Laravelのタスクスケジュール機能を動作させます。

app_queue

キューを処理するためのサーバーです。
Laravelのキュー機能を動作させます。

web

nginxサーバー。
HTTPリクエストをappコンテナへとフォワード(中継)します。

db_pgsql

PostgreSQLサーバー。

db_pgsql_admin

PgAdminサーバー

db_mysql

MySQLサーバー。

db_mysql_admin

phpMyAdminサーバー。

db_redis

redisサーバー。

db_redis_admin

redisinsightサーバー。

db_memcached

memcachedサーバー。

db_mongo

MongoDBサーバー。

db_mongo_admin

Mongo Expressサーバー。

mail_mailhog

MailHogサーバー。(MailPitを使用するため削除予定)

mail_mailpit

MailPitサーバー。

Github

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0