479 文字
2 分
Laravel Sailについて

公式より引用

Laravel Sail(セイル、帆、帆船)は、LaravelのデフォルトのDocker開発環境を操作するための軽量コマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するための優れた出発点を提供します。
Sailの本質は、docker-compose.ymlファイルとプロジェクトのルートに保存されているsailスクリプトです。sailスクリプトは、docker-compose.ymlファイルで定義されたDockerコンテナを操作するための便利なメソッドをCLIで提供します。

SailでのLaravelインストール#

Macで開発している場合、下記のコマンドで作成可能です。example-appの部分はディレクトリ名になるので好きな名前に変更可能です。
※Docker Desktopが既にインストールされている状態

curl -s "https://laravel.build/example-app" | bash

Sailサービスの選択#

Sailで新しくアプリケーションを作成する際に、withというクエリ文字列変数を使うと、使用するサービスを選択できます。

curl -s "https://laravel.build/example-app?with=mysql,redis" | bash

利用可能サービスは下記になります。何もしていない場合はmysqlredismeilisearchmailpitseleniumが設定されます。

  • mysql
  • pgsql
  • mariadb
  • redis
  • memcached
  • valkey
  • meilisearch
  • typesence
  • minio
  • selenium
  • mailpit

Sailでイメージ構築#

シェルエイリアスの設定#

デフォルトのSailコマンドはvendor/bin/sailスクリプトを使用して起動します。

./vendor/bin/sail up

vendor/bin/sailを何回もタイプするのは手間になるので、シェルエイリアスの設定を下記のコマンドで設定します。

alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'

上記の設定が完了するとsailと入力するだけで、Sailコマンドが実行できます。
※下記のコマンドはvendor/bin/sailと同じになる

sail up

Sailでの開始と停止#

アプリケーションの開始

sail up

Sailをバックグラウンド(デタッチ(detached))モードで起動する場合は下記になります。

sail up -d

アプリケーションの停止

sail down

マイグレーション#

新しくアプリケーションを作成したらsail upでコンテナを起動し、下記のコマンドでデータベースのマイグレーションをします。

sail artisan migrate

マイグレーションが完了するとhttp://localhostでブラウザからアプリケーションにアクセスできるようになります。

参考サイト#

Laravel インストール
Laravel Sail