Laravel Sailとは?メリットと基本構造をDocker初心者向けに分かりやすく解説

Laravel Sailで環境構築!

Laravel Sailを使うと、Dockerを使った開発環境を手軽に使えます。

ただそういわれても、一体どんな構造になっているのか、分かりにくいですよね。

そこで「Dockerについてよく知らない」という人のために、Laravel Sailの基本構造を分かりやすく解説します。

併せて、実体験を通じて感じたLaravel Sailのメリット・デメリットもお伝えします。

「Laravel Sail使ってみたいな」と思っていたら、参考にしてください。

Junko
Junko

Laravel大好きエンジニアのわたしが、実際にLaravel Sailを使った中で感じたことを正直にお伝えします。

動画編はこちら♪

Laravel Sail超基本:DockerとLaravel Sailの仕組みをとことん分かりやすく解説しました

Laravel Sailの基本構造を図で分かりやすく解説

まずはLaravel Sailと、基本構造から説明していきますね。

Laravel Sailとは、Dockerを使って開発環境を構築するためのコマンドラインインターフェースです。Laravel用にアレンジされたDockerコマンドを実行できます。

Dockerとは、一言でいうと、コンテナ型のアプリケーション実行環境です。

文字で書くと分かりにくいので、図にしました。Laravel SailによってDockerを使ってプロジェクトを作成すると、下図のような構造になります。

Laravel Sailの構造

Dockerを入れると、そこに、コンテナをいくつも設置できます。

Laravelの場合には、作成したアプリケーションを実行するのに必要なMySQLやMailHog, Redisといったツールを、各コンテナで動かします。

このコンテナ情報は、プロジェクト作成時に、docker-compose.ymlファイルの中にデフォルトで書かれています。

2022年11月7日現在、下記のコンテナが使用されています。

  • mysql
  • redis
  • meilisearch
  • mailhog
  • selenium

コンテナ情報を編集したり、新たにコンテナを追加したい場合には、このファイルを書き替えます。具体的な方法は、phpMyAdminを追加する方法を解説した記事をご覧ください

プロジェクトを実行する時のPHPバージョンを変更したい場合などにも、このdocker-compose.ymlファイルを編集します。具体的な方法は、下記をご覧ください。

Junko
Junko

docker-compose.ymlファイルは、Docker用のファイルです。

Laravel Sailを使わずプロジェクトを作った場合は、作成されません。

㊟Windowsの場合は基本構造が少し変わります

ちなみにWindowsの場合には、WSL環境を構築し、その中にDockerをインストールします。

図にすると、こうなります。

Laravel Sailの構造(Windows)

この後の記事でLaravel Sailのインストール方法を解説しますが、Windows編では、WSLのインストール方法から説明していきます。

Laravel Sailのメリット

基本構造についてお伝えしました。

次に、わたしが実際に感じるLaravel Sailのメリットをお伝えします。Laravel Sailのメリットというより、LaravelのプロジェクトでDockerを使うメリットとなりますが、下記の3点です。

  1. OSに依存せず開発環境を構築できる
  2. 開発環境の構築がラク
  3. バージョンが違うプロジェクトの管理がラク

順番に説明していきます。

① OSに依存せず開発環境を構築できる

Dockerを使う最大のメリットは、OSに依存せず、開発環境を構築できることです。

たとえばWindowsと本番環境(Unix系)では環境が異なるため、「Windowsでは動いたけど本番環境では動かない!」なんてことが起こりえます。

Junko
Junko

わたし自身、この事態に陥ったことがあります。Xampp(ザンプ)を使ってWindows環境でLaravelのプロジェクトを開発していたのですが、あるライブラリが本番環境ではうまく動かなかったのです。

Dockerを使えば、こういった悲惨な事態を防げます。

② 開発環境の構築がラク

2つ目は、開発環境の構築がラク、ということ。

Laravel Sailでプロジェクトを作ると、MySQL、PHP、Node.js など必要なものを一度に入れられます。

③  バージョンが違うプロジェクトの管理がラク

3つ目のメリットは、バージョンが違うプロジェクトの管理がラク、という点です。

Laravelは、バージョンによってPHPのバージョンも変わったりします。

たとえばLaravel6ではPHP7.2以上が必要でしたが、Laravel9ではPHP8.0以上が必要です。

こうした場合、プロジェクトを複数管理するには、各プロジェクトに必要なツールを切り替えたりせねばならず、面倒です。

たとえばXamppを使う場合には、PHPのバージョンに合わせて複数のバージョンのXamppをインストールし、プロジェクトごとに切り替える必要があります。

Laravel SailによってDockerを使えば、プロジェクトごとの環境をdocker-compose.ymlファイルで設定すればよいので、ツールを切り替える必要がありません。

Laravel Sailのデメリット

LaravelでDockerを使うメリットをお伝えしましたが、良いことばかりではありません。

デメリットもお伝えしていきますね。

わたしが感じるデメリットは、メモリの負荷が大きいことです。

また、ある程度Dockerについての知識も必要となる点。

Laravelの公式マニュアルでは、Dockerの経験がなくともLaravel Sailを使えると書いてあります。確かに経験がなくても使い始められます。ですが、Dockerについての知識は、ある程度あったほうが良いです。

Laravel Sailのコマンドは、Dockerのコマンドをアレンジしています。また、カスタマイズをする時には、先ほどお伝えしたとおりdocker-compose.ymlファイルを編集します。

つまり、Dockerの知識があればコマンド入力や、カスタマイズがしやすくなるのです。

とはいえ、最初からDockerをしっかり勉強してLaravel Sailに取り組むより、困ったときに調べていく形で良いかなと思います^^

「もしDockerをはじめて学ぶ」「基本を知っておきたい」という場合には、「図解! Dockerのツボとコツがゼッタイにわかる本」がおすすめです。

わたしもこの本を持っていますが、とても読みやすいです。フォルダとディレクトリの違いまで分かりやすく解説してあります。

Junko
Junko

Docker初心者向けに書かれてます。

カエルのイラストに癒されます。

さいごに

Laravel Sailの基本構造と、Laravel Sailのメリット・デメリットをお伝えしました。

Laravel Sailをいちから使っていきたい!と思ったら、この後の記事を読んでいってくださいね。

Junko
Junko

Laravel Sailの使い方や、アレンジ方法まで、動画も使いつつ、分かりやすく解説しています。

Windows版はこちら

Mac版はこちら

Laravel Sailで環境構築!

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました