📝
laravel Sailでlaravel環境作ってみた(WSL、Docker)
はじめに
laravel学習のためにlaravel Sailを導入したので、
備忘録としてまとめました。
これからLaravel環境構築する方に参考になれば幸いです。
参考動画
Youtube -【Windows対応】Laravel・PHP開発のためのDocker環境構築ガイド
使用した環境、ソフトウェア・ツール
- WSL2 (Ubuntu)
- Docker Desktop
手順
1. WSL2上でプロジェクトを作成したい任意のディレクトリに移動する
WSL2上であれば、どこでも構いません。
迷ったならtmpディレクトリがオススメ
2. Dockerを起動
今回は大きく分けて、コンテナを2種類作成します。
- 新規プロジェクト作成用コンテナ (手順3)
- プロジェクト起動用のコンテナ (手順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