グローバルなHomesteadでLaravel環境構築
2日前に、 LaravelのプロジェクトごとにHomesteadで環境構築する備忘録を書いた。
しかし、各LaravelプロジェクトごとにHomesteadで環境構築すると、ディスク容量を激しく消費するという単純な事実に気づいたので、やはりグローバルに構築することにする。つまり、Homesteadをグローバルにインストールし、全Laravelプロジェクトで同じHomestead Boxを共有する方法をとる。
目次
Homestead Vagrant Boxのインストール
使用する実機はMacBook Pro(macOS Catalina ver 10.15.3)。
前提として、Vagrant と VirtualBox はインストール済み。VirtualBoxはバージョン 6.1.4 r136177 (Qt5.6.3)、Vagrant は version 2.2.7。
Homesteadを実行するために必要なOSやソフトウェアがあらかじめ設定された仮想環境のセット、Homestead vagrant box をダウンロードする。
途中で使用する仮想環境ソフトウェア(プロバイダ)の種類を聞かれるので、Virturlboxを選択。
$ vagrant box add laravel/homestead ==> box: Successfully added box 'laravel/homestead' (v9.2.0) for 'virtualbox'!
$ ls -la ~/.vagrant.d/boxes/ .... drwxr-xr-x 4 hideyo_pr staff 128 3 1 10:37 laravel-VAGRANTSLASH-homestead $ du -sh ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/ 1.3G /Users/hideyo_pr/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/
ホームディレクトリの .vagrant.d/boxes にboxイメージが保存されているのを確認。容量は1.3GB
Homesteadのインストール
Homesteadのboxを使用する際の設定がまとめられたファイルを取得。GitHubのWebサイトからgit clone する。
$ git clone https://github.com/laravel/homestead.git Homestead
ホームディレクトリ直下の Homestead ディレクトリにファイル一式がダウンロードされる。
ここで、「masterブランチは常に安定しているわけではないため」、常に最新の安定バージョンを用意しているreleaseブランチをチェックアウト。
もしくは、常に最新の安定バージョンを用意しているreleaseブランチをチェックアウトしてください。
$ git checkout release Branch 'release' set up to track remote branch 'release' from 'origin'. >>> Switched to a new branch 'release'
master から releaseブランチに切り替わったことを確認。
$ git branch -a master * release
この時点でHomesteadディレクトリを見ると
$ ls -la total 240 drwxr-xr-x 23 hideyo_pr staff 736 3 1 10:51 . drwxr-xr-x+ 73 hideyo_pr staff 2336 3 1 10:51 .. -rw-r--r-- 1 hideyo_pr staff 213 3 1 10:44 .editorconfig drwxr-xr-x 12 hideyo_pr staff 384 3 1 10:48 .git -rw-r--r-- 1 hideyo_pr staff 14 3 1 10:44 .gitattributes drwxr-xr-x 3 hideyo_pr staff 96 3 1 10:44 .github -rw-r--r-- 1 hideyo_pr staff 154 3 1 10:44 .gitignore -rw-r--r-- 1 hideyo_pr staff 327 3 1 10:44 .travis.yml -rw-r--r-- 1 hideyo_pr staff 187 3 1 10:44 CHANGELOG.md -rw-r--r-- 1 hideyo_pr staff 458 3 1 10:44 Homestead.yaml.example -rw-r--r-- 1 hideyo_pr staff 1077 3 1 10:44 LICENSE.txt -rw-r--r-- 1 hideyo_pr staff 2095 3 1 10:44 Vagrantfile drwxr-xr-x 3 hideyo_pr staff 96 3 1 10:44 bin -rw-r--r-- 1 hideyo_pr staff 716 3 1 10:44 composer.json -rw-r--r-- 1 hideyo_pr staff 68277 3 1 10:44 composer.lock -rw-r--r-- 1 hideyo_pr staff 265 3 1 10:44 init.bat -rw-r--r-- 1 hideyo_pr staff 250 3 1 10:44 init.sh -rw-r--r-- 1 hideyo_pr staff 383 3 1 10:44 phpunit.xml.dist -rw-r--r-- 1 hideyo_pr staff 1820 3 1 10:44 readme.md drwxr-xr-x 7 hideyo_pr staff 224 3 1 10:44 resources drwxr-xr-x 23 hideyo_pr staff 736 3 1 10:44 scripts drwxr-xr-x 5 hideyo_pr staff 160 3 1 10:44 src drwxr-xr-x 6 hideyo_pr staff 192 3 1 10:44 tests