Laravelの環境構築を(Windows + WSL + Docker + Sail)で行う際に、
いくつかの問題で時間を要しました。
同じ方法で環境構築を行う初学者のために、
あらかじめ知っておくべき重要なポイントを3点紹介します。
なお、環境構築手順は以下の公式ドキュメントを参照しています。
1. Bashを実行可能なWSL2の構築が必要
Sailを使用して環境構築を行うためには、
WSL(Windows Subsystem for Linux)2でbashを実行可能なディストリビューションが必要です。
コマンドプロンプトやPowerShellでは実行できません。
現在のwslディストリビューションは以下のコマンドで調べることができます。
>wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
docker-desktop-data
docker-desktop
私の場合はWSLにdocker-desktopが設定されていたため、
プロジェクト作成に必要な要素が不足していました。
また、Ubuntuに関しても追加でcurlなどのインストールが必要となるため、
公式の「1コマンドで簡単にセットアップ!」を過信しないほうが良いかもしれません。
2. php artisan 関連のコマンドが './vendor/bin/sail artisan' に変わる
公式ドキュメントのSail on Windowsを採用する場合、
php部分が全て './vendor/bin/sail' となります。
特にSailを使用していない記事などを参照すると、
php artisan コマンドが過半数のため注意が必要です。
GPTを使用する場合も'php artisan'が最初に掲示されるため、注意が必要です。
基本的なコマンドは以下のようになります。
# Docker起動
./vendor/bin/sail up -d
# mysql接続
./vendor/bin/sail mysql
# 対話モード起動
./vendor/bin/sail artisan tinker
# マイグレート
./vendor/bin/sail artisan migrate
# シード実行
./vendor/bin/sail artisan db:seed
# マイグレート&データ生成やり直し
./vendor/bin/sail artisan migrate:fresh --seed
# テンプレ
./vendor/bin/sail
毎回全てを入力するのは手間だったので、
自分の場合は上記のようなcommands.txtを作成し、
よく使うコマンドを実行していました。
3. サンプルページの表示にもマイグレーションが必要
大抵のフレームワークでは、
プロジェクトを作成するとすぐにサンプルページを表示できますが、
Laravelの場合はDockerコンテナの起動後にマイグレーションの実行が必要となります。
# マイグレート
./vendor/bin/sail artisan migrate
マイグレーションを行わないと、
データベースにサンプルページ用のデータが投入されないため、
localhostへのアクセス時にMySQLエラーが発生します。
私はここで「Dockerまわりで設定失敗したのかな?」という路線から
かなり時間を浪費しました。
おわりに
現在アプレンティスの6期生として参加しています。
カリキュラムにLaravelが含まれるため、
今後の参加者も同じ課題に直面する可能性があると思いますので、
参考になれば幸いです。