sail:install — Sailをインストールするコマンド

artisan

Laravel Sail の sail:install コマンド

カテゴリ: artisan
タイプ: command
Laravel バージョン: 12.x
PHP バージョン: 8.4

Laravel Sail は Docker ベースの軽量開発環境。sail:install はその環境をプロジェクトに導入するためのコマンドです。

php artisan sail:install [options]

ざっくりまとめ

  • 役割:Sail の docker-compose.yml を生成し、.env を設定
  • 実行タイミング:Sail を初めて使うとき、または既存プロジェクトに追加するとき
  • 最小構成例
  php artisan sail:install
  • 実務例(MySQL, Redis, Xdebug)
  php artisan sail:install --with-mysql --with-redis --with-xdebug

コマンド全体(ソース抜粋)

/**
 * Sail のインストールコマンド
 *
 * @command sail:install
 *
 * @option with-redis      Redis コンテナを追加(デフォルト)
 * @option with-mysql      MySQL コンテナを追加
 * @option with-postgres   PostgreSQL コンテナを追加
 * @option with-mongodb    MongoDB コンテナを追加
 * @option with-sqlite     SQLite(コンテナなし)を使用
 * @option with-queue      キュードライバ(Redis がデフォルト)を追加
 * @option with-mailhog    MailHog を追加
 * @option with-xdebug     PHP コンテナに Xdebug を追加
 * @option with-docker     画像をビルドしてからインストール
 * @option with-extensions 追加 PHP 拡張機能(カンマ区切り)
 */

このコマンドは App\Console\Commands\SailInstall.php に実装され、Sail パッケージのサービスプロバイダで登録されています。


オプション一覧

オプション 説明 デフォルト
--with-redis Redis サービスを追加 あり
--with-mysql MySQL サービスを追加 なし
--with-postgres PostgreSQL サービスを追加 なし
--with-mongodb MongoDB サービスを追加 なし
--with-sqlite SQLite(コンテナなし)を使用 なし
--with-mailhog MailHog を追加 なし
--with-queue キュードライバを追加(Redis がデフォルト) なし
--with-xdebug Xdebug を追加 なし
--with-docker 画像をビルドしてからインストール なし
--with-extensions=ext1,ext2,... PHP 拡張機能を追加(例: pcov,gmp なし
--docker-compose-path=path Compose ファイルのパスを上書き docker-compose.yml
--no-interaction 確認プロンプトをスキップ なし

最小構成例

# デフォルト構成(PHP + MySQL + Redis + Xdebug)
php artisan sail:install

完了後、以下でコンテナを起動します。

./vendor/bin/sail up

実務例(PostgreSQL, Redis, MailHog, Xdebug)

php artisan sail:install \
    --with-postgres \
    --with-redis \
    --with-mailhog \
    --with-xdebug

何が起こるか

  1. Composer が Sail をインストール(既にあれば更新)。
  2. docker-compose.yml が生成され、選択したサービスが記述。
  3. .env が更新:
  • DB_CONNECTION=pgsql
  • REDIS_HOST=redis
  • MAIL_HOST=mailhog
  1. Sail 画像 がビルド(--with-docker がデフォルトで無い場合は手動)。
  2. ./vendor/bin/sail up -d ですべてのコンテナを起動。

付随 Artisan コマンド

コマンド 役割
php artisan sail:build Docker イメージをビルド
php artisan sail:up Sail サービスを起動
php artisan sail:down Sail サービスを停止
php artisan sail:restart Sail サービスを再起動
php artisan sail:status コンテナの状態表示
php artisan sail:remove Sail 設定を削除
php artisan sail:publish Sail の設定ファイルを公開

変更履歴

バージョン 変更点
9.0 sail:install コマンドが初登場
12.0 --with-extensions--docker-compose-path の追加。破壊的変更なし

よくある落とし穴と対処法

落とし穴 症状 対処
Docker が起動していない docker: command not found / コンテナ起動失敗 Docker Desktop / Engine をインストールし、起動。WSL 2 が必要(Windows)
docker-compose.yml が見つからない Error: docker-compose.yml not found 一度 php artisan sail:install を実行し、ファイルが生成されているか確認
ポート衝突 Failed to start service: Address already in use docker-compose.yml のポート設定を変更、または競合しているサービスを停止
Xdebug が効かない デバッグが行えない Xdebug 用イメージをビルドしているか確認。Windows なら Docker Desktop を最新版に
.env が更新されない DB 設定が古いまま php artisan sail:install の後、.env が書き換わっているか確認。必要なら composer dump-autoload を実行
Windows で古い Docker Desktop Xdebug が動かない Docker Desktop を最新版に更新し、Expose daemon on tcp://localhost:2375 を有効化

実務での小技

  • Sail をアップデート:Laravel をアップグレードしたら composer update laravel/sail を実行。
  • ビルド時間短縮--no-docker フラグを付けて Docker の起動済み環境を利用。
  • Compose のカスタマイズ:インストール後に docker-compose.yml を自由に編集。
  • Xdebug の使用:デバッグが不要なときは --with-xdebug を外すとメモリ消費が抑えられます。
  • CI/CD:CI で sail:build を実行し、sail:up でテスト環境を構築できます。

まとめ

  • php artisan sail:install は Sail の環境構築を行い、docker-compose.yml.env を自動で生成します。
  • 選択可能なオプションはデータベース(MySQL, PostgreSQL, MongoDB など)、Redis、MailHog、Xdebug など。
  • インストール後は sail:up で起動し、sail:down で停止。
  • 追加の Artisan コマンドでビルド・再起動・状態確認などが簡単に行えます。

参考資料

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする