Laradock?もう使わないよ?? – Laravel Sail を使ってみた

公式パッケージでdocker環境構築!

みなさん、こんにちは。どんぶラッコです。

みなさんはlaravelで新しい環境を立ち上げるときはどうしていますか?

dockerで構築する場合、自分で docker-compose ファイルを作っている記事なんかもネットにありますよね。私もお仕事でこちらの記事を参考に作成したことがあります。

しかし実は、Laravel公式が docker-compose ファイルを作成できる機能を提供していることをご存知でしょうか?

それが Laravel Sail です。

Laravel8 から インストールガイドに登場していますね。知らなかった…

この Laravel Sail とは何者なのでしょうか?

公式から説明文を引用します

Laravel Sailは、LaravelのデフォルトのDocker構成と、操作するための軽量のコマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するために良い出発点を提供しています。

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

今までLaravelでローカル環境を立ち上げる場合、

  • Laradockなどを使って自分で Docker環境を作成する
  • php artisan serve コマンドと sqlite を駆使してローカル環境で試す
  • Cloud9 などの オンライン実行ツールを利用する
  • MAMPなどの仮装サーバ上に環境構築する

といった選択肢があったと思いますが、環境構築の新たな選択肢になりそうですね!

ということで早速自分の環境で構築を試してみました。

検証環境
  • Mac OS BigSur
  • Docker Desktop for mac インストール済

Laravel Sail のインストール

新規に Laravel プロジェクトを作る場合

これから新規にLaravelプロジェクトを作る場合は、既に Laravel Sailパッケージも含まれた状態で構築されるようです。

Laravelプロジェクトの始め方も 7系 とは変わっていますね。

bash
curl -s "https://laravel.build/example-app" | bash

https://laravel.build/{プロジェクト名} の形式でプロジェクト名を指定します。上記の例の場合、 example-app というディレクトリが作成されます。

コマンドの意味は、curl で入手したコマンド内容を 標準出力渡し ( | ) して bashコマンドで実行しています。 -ssilent の略で、進捗状況やエラーなどを出力せず、純粋な結果だけを出力してくれるようにするオプションですね。

どんぶラッコ
どんぶラッコ

上の説明が「??」となっちゃってる人は、 Webブラウザで https://laravel.build/example-app にアクセスしてみるとわかりやすいと思うよ!

ということで、 https://laravel.build/example-app にアクセスしてみましょう。

すると、↓のようなコマンドが出てきたはずです。

つまり、この中のコードを実行しているだけなんですね。

特に重要なのは14行目。

コード14行目
bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium"

そう、結局ここで 従来の laravel new コマンドを叩いています。

先程、このセクションの冒頭で インストール方法が 7.x 系と変わっていると書きましたが、なんのことはなく、ただ単に追加の処理をまとめて実行してくれているだけです。

Windowsの場合

Windowsの場合は Linux コマンドが利用できるように別途設定が必要なようです。公式ドキュメントでは Windows Subsystem for Linux 2(WSL2) のインストールが推奨されていますが、 Git bash がインストールされていればそれでいけるのでは…?と思っています。

Windowsについては未検証なので、ご存知の方がいらっしゃったら情報をください!

さて、構築が完了したら sailのセットアップをします。作成したプロジェクトのフォルダに移動して、 ./vendor/bin/sail up を実行します。

bash
cd example-app && ./vendor/bin/sail up

すると、dockerコンテナの構築が開始します。最初はビルド処理が走るので数分時間がかかります。気長に待ちましょう。

バックグランド実行

docker-compose と同様、バックグラウンドで実行させたい場合は ./vendor/bin/sail up -d のように -d オプションを付与します

既存のプロジェクトに導入する場合

既存のプロジェクトに導入する場合は、 laravel/sail のパッケージをインストールして、artisanコマンドで叩くだけです。こちらも簡単!!

bash
composer require laravel/sail --dev
php artisan sail:install
./vendor/bin/sail up

Sailコマンドのエイリアスを指定する

新規プロジェクトも既存プロジェクトも./vendor/bin/sailというコマンドを入力しましたが、今後 sailコマンドを実行する際は ./vendor/bin/sail を使っていくようですね。docker-compose コマンドのような動き方をしてくれるようです。

このコマンドを毎回入力するのは面倒なので、エイリアスを貼っておくと便利だと書かれています。

どんぶラッコ
どんぶラッコ

エイリアスとは省略形みたいなもの、と考えておけばいいよ。ここでは sail と入力したら ./vendor/bin/sail と同じ意味になるように設定したいんだ。

macの場合は .zshrc または .bashrc を編集しましょう。

bash
vim ~/.zshrc

開いたら最下段に以下を追加します。

.zshrc
alias sail='bash vendor/bin/sail'

最後に source コマンドで設定を反映させておきます。

bash
source ~/.zshrc

まとめ

まずはLaravel Sailを使えるようにするところまでまとめてみました。Dockerの知識がなくてもここまでサクッと作れてしまうとは….。凄すぎです。。

僕自身も「まずは触ってみた」というところなので、これから使用していって便利だと思った点を紹介していきたいと思います!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA