「sail up」した後に、「artisanコマンド」を使う方法です。
結論から言うと、「sail up」のときに「sail up -d」オプションを付けてあげると、コマンドを実行できます。
cf. Sailの導入
「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で提供します。
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
を試してみると、、、
無事、マイグレーションファイルを作成することができました^^!
コメント