コンニチハ!SiiD AI講師兼・エンジニアのシンディと申しマス。

Laravel Sailは、Dockerを利用してLaravelの開発環境を驚くほどシンプルにしてくれるツールです。

この記事では、Sailを日常的に使う上で欠かせない必須コマンドを「チートシート」としてまとめます。
さらに、なぜローカルPCにPHPがなくてもコマンドが実行できるのか、その仕組みについても解説します!

なぜsailコマンドでPHPが動くのか?

まずこの点がLaravel Sailを理解する上で最も重要なポイントです。

通常php ...のようなコマンドを実行するには、お使いのPC(ローカル環境)にPHPがインストールされている必要があります。また、 php artisan ... であればPHPに加えてLaravel、 npm ... であればNode.jsのインストールが必要です。

しかし、Laravel Sailを使う場合、実際のコマンドはあなたのPC上ではなく、全部乗せのDockerコンテナ内で実行されています。 sailコマンドを冒頭につけることで、Laravel Sail経由で各コマンドが実行されます。
ゆえに、Laravel SailとDockerだけのインストールで済んでしまいます。

【コマンド実行の仕組み】

  1. ターミナルで sail artisan migrate と入力します。
  2. sailスクリプトがその命令を受け取ります。
  3. sailは、バックグラウンドで起動しているLaravelアプリケーション用のDockerコンテナ(内部にPHPやComposer、Artisanコマンドが全て揃っている)を探します。
  4. artisan migrateという命令を、そのコンテナの中に送り込みます。
  5. コマンドがコンテナ内部で実行されます。
  6. 実行結果があなたのターミナルに返ってきます。

この仕組みのおかげで、私たちのローカルPCに必要なのはDockerとプロジェクトファイルだけで、PHPやデータベースソフトを直接インストールする必要が一切ありません。これにより、PC環境を汚さずに、クリーンな状態で開発を進めることができます。

もっと便利に!sailコマンドのエイリアス設定

毎回 ./vendor/bin/sail と入力するのは少し長いですよね。ターミナルの設定(エイリアス)を使えば、これを sail だけで実行できるようになります。

Mac / Linux (WSL) の場合

お使いのシェル設定ファイル(.zshrcまたは.bashrc)に、以下の1行を追記します。
ターミナルを開き、このコマンドを入力するだけでOKです。

# Zshをお使いの場合
echo "alias sail='bash vendor/bin/sail'" >> ~/.zshrc

# Bashをお使いの場合
echo "alias sail='bash vendor/bin/sail'" >> ~/.bashrc

設定を反映させるために、ターミナルを再起動するか、source ~/.zshrc(またはsource ~/.bashrc)を実行してください。
これで以降は sail とだけ入力するだけよくなります!

Windows (PowerShell) の場合

まずホームディレクトリへ移動し、設定ファイル(.bashrc)があるか確認します。

cd ~
ls -a

CLI上のエディタvimで.bashrcを開きます。(nanoでもいい)

vim ~/.bashrc

インサートモードでこの行をどこかに追記します。(迷ったら最後尾にでも)

alias sail="./vendor/bin/sail"

esc->:wqで変更を保存します。また次のコマンドを入力するとずぐに変更を反映できます。

source ~/.bashrc

これで以降は sail とだけ入力するだけよくなります!

Laravel Sail 必須コマンドチートシート

以下に、開発で頻繁に使用するコマンドをまとめました。このページをブックマークしておくと便利です。

(エイリアス設定後の sail コマンドを前提としています)

コマンド

説明

sail up

コンテナを起動します。開発を始めるときの最初のコマンドです。(ログを常にCLIに出力させる場合有効)

sail up -d

コンテナをバックグラウンドで起動します。Sailを起動したまま、同じタブ内でほかのコマンドが実行できます。ただしログは出力されなくなるので、何かエラーが出たときに気づきにくい点が注意。

sail down

全てのコンテナを停止し、関連するネットワークも削除します。作業を終えるときに実行します。

sail stop

コンテナを停止しますが、ネットワークは維持します。次にsail upしたときの起動が少し速くなります。

sail restart

全てのコンテナを再起動します。

sail ps

現在起動しているコンテナの状態(ID、ポートなど)を確認します。

sail artisan

LaravelのArtisanコマンドを実行します。
例: sail artisan migrate, sail artisan make:controller PostController

sail composer

PHPのパッケージ管理ツールComposerのコマンドを実行します。
例: sail composer require laravel/sanctum

sail npm

Node.jsのパッケージ管理ツール(npm)のコマンドを実行します。
例: sail npm install, sail npm run dev

sail shell

Laravelアプリケーションのコンテナのシェル(操作画面)に入ります。コンテナ内で直接コマンドを実行したい場合に使います。

sail logs -f [service]

コンテナのログをリアルタイムで表示します。エラーの原因調査に役立ちます。
例: sail logs -f laravel.test

ぜひこれらの内容も含めて開発を楽しんでください!

...ところで、ワタシタチはオンラインのプログラミングスクールSiiDを運営していマス。
登録者数12万人を超えるYouTube CHのセイト先生から学べてしまいマス。

もし、

「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」

などと感じられたら、ぜひ検討してみてください。

個別面談・説明会はこちら!


まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する


■YouTube(SiiD受講生さま実績)

■YouTube(セイト先生メイン)

■X(旧Twitter)