Laravel Sailを初めて導入した際のつまづきどころ
こんにちはNextatのTYです
既存プロジェクトをLaravel 9 にアップグレードを行うことになり
その際の開発環境にLaravel Sailを導入したので簡単な導入の手順とつまづきをメモのようにまとめてみます!
Laravel SailとはDockerの開発環境を簡単に構築できるというコマンドライン・インターフェースです。
- Dockerの知識が少ない。
- 開発環境作成のベース整備にかける時間がない。
こんな時に簡単に使用できるので便利です!
公式ドキュメント:https://readouble.com/laravel/8.x/ja/sail.html
今回は既存のプロジェクトにSailをインストールします!
composer require laravel/sail --dev
インストールが完了したら
php artisan sail:install
ここまできたらSailを立ち上げるだけです!
./vendor/bin/sail up
これでプロジェクトが立ち上がります
こんな簡単にDockerでの開発環境を構築できるのはいいですね!
毎回 ./vendor/bin/sail と入力するのは面倒という場合
ドキュメントに従ってBashエイリアスを設定してしまえば
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
下記のようなコマンドで実行できるようになります!
sail up -d
Dockerの知識が少ない私にも優しく比較的簡単でした!
便利なSailコマンドがいろいろあるようなので調べてみてください!(参考)
ローカルでは動作も問題なさそう!!
と思ったら少し問題が起こりました。
Sailを導入済のプロジェクトでの初回起動時のつまづきポイント
既にSailを導入しているプロジェクトをGitHubなどからcloneを行って初回起動する際には注意が必要でした。
sail up -d
で初回起動時も環境が立ち上がると思ったのですが立ち上がらない......
vendorディレクトリに依存ライブラリがインストールされていないのが問題のようでした。
いろいろ調べてみるとLaravel SailではComposerで依存ライブラリがインストールされているのを前提にSailコマンドが動くみたいですね。
参考記事 : https://qiita.com/Gro/items/38103dda7aa5fb37eb64
そこで、まず初回起動時にはComposerで依存ライブラリをインストールしてあげないといけません!
*ローカルマシンに要求されるバージョンのPHPが入っていない場合はSailが用意しているComposerのDockerイメージを利用するのが便利です。
docker run --rm \
-u "$(id -u):$(id -g)" \
-v ${PWD}/src:/var/www/html \
-w /var/www/html \
laravelsail/php80-composer:latest \
composer install --ignore-platform-reqs
今回のケースでは上記のように初回起動時にComposerで依存ライブラリをインストールしてあげることで解決できました。
少しでも皆さんの参考になれば最高です!
今回は以上です、読んでいただきありがとうございました!