Laravelの環境構築が一瞬で終わった

Laravelの環境構築をしようとしたら、一瞬で終わって感動したという感想メモです。
公式サイトに書いてあること以上のことは出ません。

環境構築手順

今までは、Laravelの環境構築のために、

  1. PHPを入れる
  2. Laravelコマンドを入れる
  3. Laravelをインストールする
  4. データベースとかも準備する
  5. 必要であればnodeやらyarnやらも準備する
  6. ローカルが汚れないように仮想環境を準備する

みたいな面倒なやつが必要でした。
そして、ちょいわけあって新規の環境を用意する必要があり、「面倒だなー」と思いながら環境構築をしたのですが、一瞬で終わってびっくりしました。

今やLaravelの環境構築は3ステップで終わります。

  1. Docker for Mac を入れる
  2. curl -s https://laravel.build/example-app | bash
  3. ./vendor/bin/sail up

.env.example のコピーや artisan key:generate は必要ありません。
composer install も不要です。
PHPを入れる必要すらありません。

この sail がLaravel8から入った新機能のようでした。

できる環境

Laravelの開発環境を作るライブラリのようです。

デフォルトでは

  • PHP8.0
  • MySQL8.0
  • Redis
  • MailHog
  • node ( npm )

の環境が出来上がります。
デフォルトではコメントアウトされていますが、Laravel Dusk のために selenium のコンテナも建てられます。
ちなみにPHPバージョンは7.4でも作れるようです。

dockerがわかる人であれば、 docker-compose.yml を読めば「ああなるほどね」となると思います。

操作体系

docker環境となると、「dockerわからん人どうするんじゃい!」という話が上がりそうですが、そこらへんもわかりやすくまとまってました。
./vendor/bin/sail がエントリポイントとなり、色々とできるようです。

やりたいこと 今までのコマンド sailでのコマンド
環境立ち上げ docker-compose up / php artisan serve sail up
環境破棄 docker-compose down / ( serveを終了する ) sail down
PHPコマンド php info.php sail php info.php
Composer操作 composer update sail composer update
npm操作 npm i sail npm i
Artisanコマンド php artisan make:model User sail artisan make:model User
Laravel Dusk php artisan dusk sail dusk
Laravel Tinker php artisan tinker sail tinker
Shellコマンド docker-compose exec sh sail shell

だいたいのことはできそうです。 ./vendor/bin/sail が起点になるので、エイリアスシンボリックリンクを用意すると良いと思います。

まとめ

個人開発でサクッと環境構築するにはとても便利そうです。
プロダクションで使用する場合は、もうちょっとコンテナの中を覗いたりする必要がありそうです。