はじめに
以下の記事では、Laravel Sailを使って環境の構築を行いました。
SailはDockerですので、開発環境を簡単に用意することもできますし、カスタマイズすることも楽です。
私自身、最近はSailでの開発環境を使用しています。
Laravelの開発環境について、Sail環境ではなく、ローカルPCにMySQLやComposerをインストールして開発していますでしょうか。
特に古いプロジェクトはその様になっていると思いますが、今回はSail環境じゃないプロジェクトを、Sail環境に移行するための手順をまとめました。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
【紹介】個人開発
私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。
また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。
Sail環境へ移行
Composerでプロジェクトを作成
まずは、ローカルPCにインストールしたComposerでLaravelプロジェクトを作成します。
作成したプロジェクトをSail環境へ移行する手順を行います。
Sail環境を構築するため、WSL2やDockerは必要になりますので、以下の構築手順を参考にしてください。
以下のコマンドでLaravelプロジェクトを作成します。
composer create-project laravel/laravel sample-project --prefer-dist
新規でLaravelプロジェクトを作成した場合、composer.jsonを確認すると、Sailは導入されています。
"require-dev": {
"facade/ignition": "^2.5",
"fakerphp/faker": "^1.9.1",
"laravel/sail": "^1.0.1",
"mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^5.10",
"phpunit/phpunit": "^9.5.10"
},
もし、古いLaravelプロジェクトでSailがcomposer.jsonの一覧にない場合は、以下のコマンドでSailをインストールします。
composer require laravel/sail --dev
Sailへ移行
以下のコマンドでLaravelプロジェクトにSail環境を準備します。
php artisan sail:install
コンテナ環境に何を構築するか聞かれます。
今回はmariadbだけインストールしたいので、2を入力しEnterで進めました。
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailpit
[8] selenium
[9] soketi
もし複数指定する場合は、カンマ区切りで入力します。
ちなみにSailでプロジェクトを作成した場合は、デフォルトで以下の番号のサービスが追加されています。
0,3,5,7,8
以下のメッセージが表示され、環境の構築はすぐに終わります。(docker-compose.ymlが作成されるなど)
Sail scaffolding installed successfully.
Sailの起動
VS Codeのターミナルで、WSLを開きます。
Sailを起動します。
./vendor/bin/sail up
以下のURLにアクセスしましょう。
http://localhost/
Laravelの起動画面が表示されました。
これでローカルPCに構築したXAMPPやComposerは不要で、Sailを通じて作成されたDockerコンテナの方で実行環境が整いました。
.envの確認
.envの確認を行いましょう。変更の必要はありませんが、DBに接続できるのでしょうか。
DBのホスト先は自動で変更になっていました。
DB_HOST=mariadb
すでに設定されているデータベースの接続情報で、コンテナ内のデータベースは作成されます。
DB_DATABASE=DB名
DB_USERNAME=ユーザ
DB_PASSWORD=パスワード
以下のコマンドでテーブルを作成すればOKですね!
sail php artisan migrate
さいごに
Sail環境は、ローカルに開発環境の用意も不要で、複数人の開発でも環境を統一できるのでとても便利です。
古いプロジェクトでSailを導入していない場合は、移行を検討してみましょう。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
コメント