公式より引用
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
利用可能サービスは下記になります。何もしていない場合はmysql
、redis
、meilisearch
、mailpit
、selenium
が設定されます。
- 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
でブラウザからアプリケーションにアクセスできるようになります。