初めてのLaravel Sailでアプリ開発環境構築
(Laravel v11 + sqlite3 )
初心者でも簡単にローカル環境でLaravelの学習をしたいと思い、Laravel標準のDocker開発環境を作るLaravel Sailを使いました。その時の環境構築方法についてメモしています。
Laravel Sail とは
Laravel Sailを使えば、Laravel のDocker開発環境を手軽に構築できます。
Laravel Sailは、LaravelのデフォルトのDocker開発環境を操作するための軽量コマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するための優れた出発点を提供します。
パソコン環境について
- CPU :Core i7-4610M
- メモリ: 16GB
- OS:Ubuntu 20.04
Laravel Sail インストール
curl、dockerがインストールされているか確認。
$ docker --version
Docker version 24.0.2 ...
$ curl --version
curl 7.68.0 (x86_64-pc-linux-gnu) ......
# curlがインストールされていなければインストール
$ sudo apt install curl
# dockerがまだな場合は以下の手順でインストール
# (1)
$ sudo curl -fsSL https://get.docker.com | sh
# (2)
# $USERをdockerグループに追加
$ sudo usermod -aG docker $USER
続いて環境構築。少し時間が掛かります。
# プロジェクト名をMyBBSとすると
curl -s "https://laravel.build/MyBBS" | bash
フォルダ構成(VSCode)
.editconfig
Laravel 標準のエディタ設定が記載。
これを有効にするにはVSCodeに拡張機能を入れる必要があるようです。
EditorConfig は、さまざまなエディターや IDE で同じプロジェクトに取り組んでいる複数の開発者のコーディング スタイルの一貫性を維持するのに役立ちます。
VSCodeで必要な拡張機能
必要な拡張機能2つをインストール
環境設定
.envファイルに追加/修正
TIMEZONEをAsia/Tokyoに、LOCALをjaに変更
APP_PORTを8573を追加します。いずれも=の前後に空白をいれないでください。
起動と確認(失敗)
これでコンテナの作成・起動ができます。しかし、実際にやってみるとmysqlの所で終了しません。
$ ./vendor/bin/sail up -d
⠿ Container mybbs-mysql-1 Starting ←終了しない
原因
これはローカル環境で既にmysqlのポート番号3306を使っていたためでした。衝突しないようにするには、.envに以下の追加を行います。
.envファイルに新規追加
尚この設定は、sqliteを使うだけでも、ローカル環境でmysqlが動作している場合は必要です。
$ ./vendor/bin/sail up -d #再起動します
localhost:8573
以上です。