【Laravel Sail】Sailで「artisanコマンド」を使う方法 / detachedモード

Laravel

「sail up」した後に、「artisanコマンド」を使う方法です。

結論から言うと、「sail up」のときに「sail up -d」オプションを付けてあげると、コマンドを実行できます。

cf. Sailの導入

【Laravel Sail】たった2行で、Laravel環境を構築する
もう「環境構築がめんどくさい」とは言わせない。Sailを使うとそれぐらい簡単です。 かんたんな準備 ・WSL2 PowerShellで wsl --install するだけ ・Docker インストーラで普通に をインストールし...

「php artisan」の代わりに「sail artisan」

そもそもSailの本質は、「docker-compose.yml」「sailスクリプト」です。

sail upによって、「docker-compose.yml」に指定されたサービスのDockerコンテナたちが起動されます。

Sailの本質は、docker-compose.ymlファイルとプロジェクトのルートに保存されているsailスクリプトです。sailスクリプトは、docker-compose.ymlファイルで定義されたDockerコンテナを操作するための便利なメソッドをCLIで提供します。

https://readouble.com/laravel/8.x/ja/sail.html

Sailを使う場合、結局のところ、アプリケーションをDockerコンテナ上で動かしているので、ローカルと分離された環境で実行されます。

ComposerやNPM等のツールも、ローカルにインストールされているわけではないので、Sailを介してコマンドを実行する必要があります。

php artisan → sail artisan
php artisan migrate

sail artisan migrate
php → sail php
php --version

sail php --version
composer → sail composer
composer require laravel/telescope

sail composer require laravel/telescope

!重要! どこでコマンドを実行するの?

Windowsの「ターミナル」 or VScodeのターミナル を開いて、

WSL上で、

sail up

を実行すると、、、

通常、Sail起動完了後も、

mailhog-1
meilisearch-1

の健康状態が延々と繰り返されます。

これでは、コマンドを実行することができません。

そこで、起動時に、Sailをdetachedモード(切り離されたの意)で起動することで、Dockerコンテナをバックグラウンドで動かします

sail up -d

これで、再びコマンド入力ラインが戻ってくるので、コマンドを実行することが可能です!

試しに、

sail artisan make:migration create_[テーブル名]_table

を試してみると、、、

無事、マイグレーションファイルを作成することができました^^!

 

cf.
Laravel Sail 8.x Laravel

コメント