📝

laravel Sailでlaravel環境作ってみた(WSL、Docker)

2024/02/09に公開

はじめに

laravel学習のためにlaravel Sailを導入したので、
備忘録としてまとめました。

これからLaravel環境構築する方に参考になれば幸いです。

参考動画

Youtube -【Windows対応】Laravel・PHP開発のためのDocker環境構築ガイド

使用した環境、ソフトウェア・ツール

  • WSL2 (Ubuntu)
  • Docker Desktop

手順

1. WSL2上でプロジェクトを作成したい任意のディレクトリに移動する

WSL2上であれば、どこでも構いません。
迷ったならtmpディレクトリがオススメ

2. Dockerを起動

今回は大きく分けて、コンテナを2種類作成します。

  1. 新規プロジェクト作成用コンテナ (手順3)
  2. プロジェクト起動用のコンテナ (手順4)

それぞれ、順を追って説明します。

3. Laravel Sailがインストールされたコンテナを作成

以下のコマンドを入力して、コンテナを作成します。

//コンテナを作成して、コンテナ内のbashを起動する
docker run -it -v $(pwd):/opt -w /opt laravelsail/php81-composer:latest /bin/bash

コンテナ内で新規プロジェクトを作成し、Laravel Sailをインストールします。

//プロジェクトを作成
composer create-project 'laravel/laravel:10.*' <プロジェクトフォルダ名>

//作成したプロジェクトファイル内に移動
cd <プロジェクトフォルダ名>

//Laravel Sailをインストール
php artisan sail:install

//コンテナから抜ける
exit

今後、新規プロジェクトを作成する場合はこちらのコンテナ内で作成します。
作成したプロジェクトはWSL2のディレクトリと同期されているため、コンテナから抜けた後もWSL上で編集することができます。

4.laravel Sailを起動する

//1.で選択した任意のフォルダに作成したプロジェクトがマウントされているため、そちらに移動する
cd </任意のフォルダパス/プロジェクトフォルダ名>

//プロジェクト内のすべてのファイル権限をrootから自分のユーザー名に変更する
sudo chown -R ユーザー名:ユーザー名(グループ) .
-> パスワード入力

//バックグラウンドでSailを起動(初回は別コンテナが作成される)
./vendor/bin/sail up -d

おまけ

やっておきたい初期設定

/config/app.php

//タイムゾーンを"Asia/Tokyo"に変更 (Application Timezone)
'timezone' => 'Asia/Tokyo'

//言語を日本語(ja)に変更 (Application Locale Configuration)
'locale' => 'ja'

デバッグバーのインストール

//composerからデバッグバーをインストールする
./vendor/bin/sail composer require barryvdh/laravel-debugbar:^3.7

//ctrl + p + qでデタッチ

localhost で、トップページの下部にデバッグバーが表示されていることを確認
非表示にするには、プロジェクトフォルダ内の .envファイルを編集

//非表示
APP_DEBUG=false

//表示
APP_DEBUG=true

phpmyadminを使用したい場合

手順4 でSailを起動する前にプロジェクトフォルダ内のdocker-compose.ymlに下記内容を追記します。
(mysqlイメージの下に追記するとわかりやすいかも)

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            MYSQL_USERNAME: '${DB_USERNAME}'
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            PMA_HOST: mysql
        networks:
            - sail

その他よく使うコマンド

Sailを終了

./vendor/bin/sail stop

Sailをリビルド

./vendor/bin/sail build --no-cache

簡易サーバ起動

./vendor/bin/sail artisan serve

DB内にテーブル作成

./vendor/bin/sail artisan migrate

Discussion