Laravel SailでDocker環境構築

Laravel Sail とは、Laravel 8 から追加された公式パッケージで、Docker を意識せずに Docker 環境を構築できるパケージです。
今回はその Laravel Sail を使って、 Docker の開発環境を作ってみたいと思います。

バージョン

macOS  Big Sur 11.6
PHP 8.0.8
Laravel  8.79.0
composer 2.2.4

composer を使用してプロジェクト作成

プロジェクト名は sail-test にします。

composer create-project laravel/laravel sail-test

作成が完了したら、プロジェクト内に移動します。

cd sail-test

Sail をインストール

最新の Laravel では Sail 自体はすでに入っているので、インストールの必要はありません。
既存のプロジェクトにインストールする際はコマンド実行します。

composer require laravel/sail --dev

docker-compose.yml ファイルを作成

Sail のインストールが終わったら、起動に必要な docker-compose.yml を作成するためにコマンドを実行します。

// docker-compose.yml を作成する為のコマンド
php artisan sail:install

コマンドを実行すると必要なサービスを選んで docker-compose.yml を作成することができます。
画像の例では、データベースに MySQL と redis、memcahed、minio、mailhog を選択しています。

数字を入力して必要なサービスを選択する。

コンテナ立ち上げ

docker-compose.yml が作成されたらコンテナを起動していきます。

// コンテナ起動
./vendor/bin/sail up -d
Sail コマンドでコンテナが立ち上がったのが確認できる。

初期値のままであれば localhost:80 にアクセスすると Laravel のスタートページが表示できました。

MailHog もちゃんと使えます。

Sail コマンド

sail コマンドを打つ際に、いちいち ./vendor/bin/sail を打つのがしんどい場合は、エイリアスを登録しておくと便利です。以下のコマンドコピペで設定できます。

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

コンテナの中に入るとき

sail shell

テストを実行する時も sail コマンドを使用ます。

sail test

コンテナ停止

sail stop

まとめ

今までは Laravel の起動には php artisan serve コマンドを使用していましたが、Sail今後は Docker を使っていきたいと思います。
このほかにも sail コマンドはあるので、今後使用していったらまたまとめたいと思います。

コメントを残す

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

CAPTCHA