🙌
私的 Laravel Sail 構成
Vite 版の Laravel 開発環境、Laravel Sail か自分で構成するか
Laravel が v9.2 から Vite 対応になりました。
以前の記事↓のように Node を個別のコンテナに分けても使えないことはないのですが、ちょっと設定を変える必要があるので試行錯誤中です。
一応個別コンテナでの構成も作ってはみたのですが(この記事の最後にリポジトリを掲載)、
Laravel Sail の構成をいじるのとどっちがいいかなぁと。
Laravel Sail も中身は Docker なので、自分好みに変更してから使おうという話です。
1. Laravel Sail を使った Laravel のインストール
まず、ドキュメントの"Sailサービスの選択"の方法で Laravel をインストールする。
- example-app の部分は適宜変更
- mysql だけでいいのでクエリパラメータ with で mysql のみ指定
(データベースの変更や redis, meilisearch など他のコンテナを使用する場合はここで取捨選択) - わたしは Mac ユーザで zsh を使っているので bash を zsh に置き換え
curl -s "https://laravel.build/example-app?with=mysql" | zsh
# ...インストールの最後にパスワードを求められる(おそらく sail コマンドなどのパーミッション変更のため)
code example-app # vscode で開く
2. MySQL コンテナを修正
sail up する前に mysql のコンテナの設定を変える。
-
docker/mysql ディレクトリ作成
プロジェクトルートで実行mkdir -p docker/mysql
-
Dockerfile, my.cnf 作成
1 で作成したディレクトリに MySQL 用の Dockerfile と設定ファイル my.cnf を置く。
- docker-compose.yml 編集
プロジェクト直下の docker-compose.yml を編集する。
mysql コンテナを 2 で作成した Dockerfile をもとにビルドするように書き換える。
3.動作確認
1. Docker 起動
./vendor/bin/sail up -d # バックグラウンド起動
※ sail コマンドのエイリアスの指定をしておくといい
(以降、エイリアス指定済みとして sail に省略)
zsh の場合は ~/.zshrc に追記
2. 初期設定
-
config 以下の設定確認
- app.php の timezone, locale etc.
- database.php の mysql の collation
-
Jetstream をインストールするならここで
3. マイグレーション
sail artisan migrate
Vite 開発サーバ起動
sail npm run dev
- 止めるときは Ctrl + c
Docker 停止
sail stop
おまけ) Vite 対応 Docker 構成
Discussion