僕が使ってるPCは12インチMacbookなんですが、「12インチMacbookでもVagrantで快適にローカル開発出来るん?」と言う単純な疑問の元やってみた。
ついでにUNICORNフレームワーク側で一発でVagrantの環境が構築出来る機能を追加したよと言う話。
MacにVagrant+VirtualBox+Nginx+PHP7環境なUNICORNを一発でインストールする
先ずはXcodeをインストールしておく必要があります。
Xcode
-> https://itunes.apple.com/jp/app/xcode/id497799835?mt=12
なんでかと言うと、homebrew
を使ってVagrant
とかVirtualBox
のインストールを自動化してるんですが
そのhomebrew
の最新版を入れるのにXcode
が必要になるからです。
インストーラの中でxcode-select --install
をしています。
インストールコマンドはちょー簡単です。
curl unicorn-project.github.io/install.sh | sh && sh ./vagrant-nginx.sh start
※ curl xxx | sh
はオープンソースなので誰かに書き換えれてるとまー危ないんで中身は確認する癖を付けるといいそうだよ!
コレだけ。
Vagrant
のイメージファイル(1.6GBくらい)のダウンロードが走るので、完了まではそこそこ待たされますが
暫くまっていると・・・
ブラウザが起動して、UNICORN管理画面が開きます。
そのときにはVirtualBox
にIPアドレスが割り振られ、そのIPアドレスに仮のローカルドメインがMacの/etc/hosts
ファイルに追記されます。
アメイジングなお手軽さだね!
あとはもう管理画面にログインして「GENERATE NEW PROJECT」してゴリゴリ書き始めればOKです。
iOSアプリの雛形を使えばiOSの開発が直ぐに出来ますし
Andoridアプリの雛形(v0.3.0でようやく雛形追加出来ました!)を使えばAndroid Studioで直ぐに開発が始められます。
このままgitにPushすれば、チーム開発も楽に出来る
チームメイトはPullして
sh [push/pullしたディレクトリ]/vagrant-nginx.sh start
とやれば全く同じ環境が構築されます。
インストーラはVagrant
やVirtualBox
の存在をチェックしてインストールするかしないかもちゃんと処理してくれるので
既にインストール済みの場合は当然スキップしてくれます。
さらに、インストーラはVirtualBox
に追加済みのボックスの数を数えてIPアドレスを割り振りしてくれますので
競合が起きることもおそらく無いと思うので、そういった部分でも導入障壁はかなり下がるんじゃないでしょうか。
Vagrantは使い終わったらstopするとエコ(´v`)
sh [push/pullしたディレクトリ]/vagrant-nginx.sh stop
と、すると該当のBoxは停止します。
メモリーやCPUに気を使う環境の場合に役立てて下さい。
Boxへのログインも簡単!
sh [push/pullしたディレクトリ]/vagrant-nginx.sh login
これでBoxにsshしてくれます。
ここまでくるとマーベラスなお手軽さよね!!
他にも、Box設定の変更後の再読込用の
sh [push/pullしたディレクトリ]/vagrant-nginx.sh reload
や、Boxをimageファイル化する
sh [push/pullしたディレクトリ]/vagrant-nginx.sh package
などが用意されていますので活用して下さい。
で、やってみて
MAMP
よりはやっぱり重いけれでも、一応動くし開発も出来るかなーくらいの重さではあった。
ただ、画像のバイナリをNginxから返す箇所があるのだけど、ここは外部ストレージとかでURLを用意して
それを読み込むような処理にしないとアプリの開発ではキツイ重さかも・・・
この辺りはおいおい改善して行きますm(__)m