初めての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に拡張機能を入れる必要があるようです。

EditConfigとは

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

以上です。

Follow me!