Laravel Sailとは?
Docker環境で構築されたLaravelアプリケーションを操作するための軽量なCLIです。
Dockerの経験・知識がない開発者でも、Sailコマンドを使えばDocker × Laravelの開発をスムーズに進めることができます。
Sailを使うメリット
Sailを使う具体的なメリットを紹介します。
環境構築がかんたんにできる
通常であれば PHP、MySQL、Redis、Node.jsなどを手動でインストール・設定する必要がありますが…
Sailの場合、./vendor/bin/sail up
コマンドだけで、必要なコンテナ(Webサーバー、データベース、キャッシュなど)が自動的に立ち上がります。
コマンドがシンプルに書ける
例えばDockerで複数のコンテナ(アプリケーションコンテナ、DBコンテナなど)を起動している場合、アプリケーションコンテナでphpコマンドを実行したい場合は、コンテナを明示的に指定する必要があります。
こんな感じ↓
# docker-compose exec app で、アプリケーションコンテナを指定する必要がある
docker-compose exec app php artisan migrate
こうやって毎回docker-compose exec app
を頭につけるのは面倒くさいですよね。
ですが、sailをインストールするともっとシンプルなコマンドで済みます。
sail artisan migrate
Sailは自動的に対象のコンテナを認識し、Laravelの環境に合わせたコマンド実行を行ってくれます。
Laravel Sailのインストール
インストール
composer require laravel/sail --dev
Sailを使うために必要なdocker-compose.yml
や.env
の設定を行う
php artisan sail:install
基本的にはこれだけでSailコマンドが使えるようになります。
例えば、コンテナを起動したければ以下のコマンドで起動できるはずです。
./vendor/bin/sail up
エイリアスを設定する
ここまでだと、Sailコマンドを使うためには毎回 ./vendor/bin/sail
と入力する必要があります。
これが面倒だと感じる場合は、エイリアスを設定することをお勧めします。
ターミナルの設定ファイルに以下を追記
# Bashを使っている場合
echo "alias sail='bash ./vendor/bin/sail'" >> ~/.bashrc
# Zshを使っている場合
echo "alias sail='bash ./vendor/bin/sail'" >> ~/.zshrc
設定を反映させる
# Bashの場合
source ~/.bashrc
# Zshの場合
source ~/.zshrc
ターミナルの設定ファイルに変更を加えると、シェルがその変更を認識するためには、改めて設定ファイルを読み込ませる必要があります。
source ~/.bashrc
を実行することで、現在のシェルセッションに変更内容を即座に反映させることができます。
まとめ
Laravel Sailを使えば、アプリケーションコンテナなどを指定せずとも、以下のようなシンプルなコマンドで操作が可能になります!
ぜひ試してみてください。
# コンテナを起動する
sail up -d
# コンテナを停止する
sail down
# マイグレーションファイルを実行する
sail artisan migrate