Documentation Index
Fetch the complete documentation index at: https://kawax.biz/llms.txt
Use this file to discover all available pages before exploring further.
Sail とは
Laravel Sail は、Laravel の Docker 開発環境を操作するための軽量なコマンドラインインターフェースです。 PHP、MySQL、Redis を使った Laravel アプリケーションを、Docker の事前知識がなくても構築できます。 Sail の中心にあるのは、プロジェクトルートに置かれるcompose.yaml ファイルと sail スクリプトです。
sail スクリプトは compose.yaml で定義された Docker コンテナを操作するための便利な CLI メソッドを提供します。
Laravel Sail は macOS、Linux、および Windows(WSL2 経由)で動作します。
Sail はローカル開発専用のツールです。本番環境への利用は想定されていません。
本番環境では適切な Docker / クラウド構成を別途用意してください。
インストール
既存プロジェクトへのインストール
Composer でパッケージをインストールします。設定ファイルを発行する
sail:install Artisan コマンドを実行します。
このコマンドは compose.yaml をプロジェクトルートに発行し、.env に必要な環境変数を追記します。追加サービスの追加
既存の Sail インストールにサービスを追加するにはsail:add コマンドを使います。
Devcontainer の利用
Devcontainer 内で開発したい場合は--devcontainer オプションを使います。
設定
シェルエイリアスの設定
デフォルトでは./vendor/bin/sail と毎回入力する必要があります。
シェルエイリアスを設定すると sail とだけ入力すれば済むようになります。
~/.zshrc または ~/.bashrc に追記してシェルを再起動してください。
イメージの再ビルド
パッケージを最新の状態に保ちたい場合はイメージを再ビルドします。起動と停止
compose.yaml に定義されたすべての Docker コンテナを起動するには up コマンドを使います。
stop コマンドを使うか、フォアグラウンドで起動中なら Ctrl + C を押します。
起動フロー
コマンドの実行
Sail を使う場合、アプリケーションは Docker コンテナ内で動作します。 PHP コマンド、Artisan コマンド、Composer コマンド、Node / NPM コマンドはすべてsail 経由で実行します。
Laravel 公式ドキュメントでよく見かける
php artisan、composer、npm コマンドは、
Sail 環境では先頭に sail を付けて実行してください。PHP コマンド
Composer コマンド
Artisan コマンド
Node / NPM コマンド
コンテナ CLI (シェル)
コンテナ内で直接 Bash セッションを開くこともできます。サービス
Sail が提供するサービスの概要です。インストール時にsail:install で選択できます。
MySQL
デフォルトでcompose.yaml に含まれています。
データは Docker Volume で永続化されます。初回起動時にアプリ用と testing 用の 2 つのデータベースが自動作成されます。
.env の DB_HOST を mysql に設定するとアプリからアクセスできます。
3306 です。
Redis
.env の REDIS_HOST を redis に設定するとアプリから Redis にアクセスできます。
Valkey
Redis の代替として Valkey を使う場合はREDIS_HOST を valkey に設定します。
Mailpit
ローカル開発中のメール送信を捕捉して Web UI でプレビューできます。http://localhost:8025 で Mailpit の Web UI にアクセスできます。
Meilisearch / Typesense
Laravel Scout と統合して全文検索を試せます。- Meilisearch:
MEILISEARCH_HOST=http://meilisearch:7700 - Typesense:
TYPESENSE_HOST=typesense、TYPESENSE_PORT=8108など
RustFS (S3 互換ストレージ)
本番で Amazon S3 を使う予定がある場合、ローカルで S3 互換ストレージをエミュレートできます。テストの実行
sail test は内部的に sail artisan test と同等です。デフォルトで専用の testing データベースが用意されるため、開発データに影響しません。
Laravel Dusk
Sail を使えば Selenium をローカルにインストールせずに Dusk のブラウザテストを実行できます。compose.yaml の Selenium サービスのコメントを外してください。
PHP / Node バージョン
PHP バージョンの変更
compose.yaml の laravel.test コンテナの build.context を変更します。
Node バージョンの変更
サイトの公開共有
同僚のプレビューや Webhook テストのために、一時的にサイトを外部公開できます。laravel-sail.site URL が発行されます。URL 生成ヘルパーを正しく動作させるために、bootstrap/app.php で信頼するプロキシを設定してください。
Xdebug
有効化
まずsail:publish で設定ファイルを発行してから、.env に以下を追加します。
php.ini ファイルに次の設定が含まれていることを確認します。
CLI デバッグ
ブラウザデバッグ
ブラウザからデバッグセッションを開始する手順は Xdebug 公式ドキュメント を参照してください。 PhpStorm を使っている場合は Zero-configuration debugging の設定が便利です。カスタマイズ
Sail の Dockerfile や設定ファイルをカスタマイズするにはsail:publish コマンドで発行します。
docker/ ディレクトリに Dockerfile が配置されます。
変更後はコンテナを再ビルドしてください。
本番環境との違い
Sail と本番環境の主な違いを以下にまとめます。| 項目 | Sail (ローカル) | 本番環境 |
|---|---|---|
| 目的 | 開発・デバッグ | サービス提供 |
| Xdebug | 有効にできる | 無効推奨 |
| Mailpit | メールを捕捉してプレビュー | 実際のメールサーバー |
| データ永続化 | Docker Volume | マネージド DB など |
| パフォーマンス | 最適化なし | 最適化必須 |