公式より引用
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" | bashSailサービスの選択
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 upvendor/bin/sailを何回もタイプするのは手間になるので、シェルエイリアスの設定を下記のコマンドで設定します。
alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'上記の設定が完了するとsailと入力するだけで、Sailコマンドが実行できます。
※下記のコマンドはvendor/bin/sailと同じになる
sail upSailでの開始と停止
アプリケーションの開始
sail upSailをバックグラウンド(デタッチ(detached))モードで起動する場合は下記になります。
sail up -dアプリケーションの停止
sail downマイグレーション
新しくアプリケーションを作成したらsail upでコンテナを起動し、下記のコマンドでデータベースのマイグレーションをします。
sail artisan migrateマイグレーションが完了するとhttp://localhostでブラウザからアプリケーションにアクセスできるようになります。
