ジーズアカデミー Advent Calendar 2018 18日めです。
まだ、地球上では12月18日の場所があるのでギリギリセーフ。
Who am I ?
ジーズアカデミーでiOSの講師をしています。
どうやらLaravelの講師もやることになりそうです。
インフラが好きです。
TL;DR
超簡単(ほぼコマンド一発)にLaravel開発環境を作れるようにしてみました。
ちょっとだけ便利なツールも作ってみました。
講義をするときに大変なのは環境を揃えることだったりします。
LaravelとPHPについて
Laravel良いですよね。アプリを作るの簡単でアホになれます。PHP7サイコーです。はやくプロパティーの型指定使いたいです。ついでにジェネリクスとenumも実装して欲しいなとおもったけどそれなんてHHVM?
Eloquent使ってキッチリパフォーマンスだすのはSQL書くより難しかったり・・・。
Eloquent便利でもまだ今はSQLちゃんと書けた方がいいと思います。
やったこと
docker使ってLaravelの開発環境を簡単に作れるようにしました。
Mac限定です。Windowsでも少し頑張れば動くと思います。
laradockを元にしてコマンド1発で動くように(ただしDocker Desktopインストール済みでgit cloneした後)
コンテナの構成
Laradockを土台にして作っています。Laradockは何でも入りすぎなので最低限必要なモノだけにそぎ落としてカスタマイズしてあります。
あとでDBを操作するツールも使えるようにしておこうかなと思っています。
デフォルトではmysqlを使うようになっていますがpostgresqlを使いたい場合はlaradock/docker-compose.yml
を編集して使えるようにして下さい。個人的にはpostgresqlの方が好きです。
使い方
リポジトリ: https://github.com/taichi0529/laradev
環境を変更したい場合はlaradock/env-example
を先に編集して下さい。こちらもLaradockのファイルから大分そぎ落としてあります。
laravel5.5
を使う事を前提にしています。
git clone git@github.com:taichi0529/laradev.git
cd laradev
./start.sh
問題無ければhttp://localhost:8888/
でアクセス出来るはずです。
おまけ
./container-login.sh
でコンテナを選んでログイン出来ます。
dockerについて
今更ですがdockerのコンテナは仮想マシンじゃありません。docker上でWindowsは動きません。
Linuxの機能を使って作られるコンテナをdockerが管理しています。
Linux(カーネル)が本社でコンテナは支社みたいなもんです。本社がリソース(会社だと人、PCだとCPUやメモリなどのリソース)を支社へ配分しています。Appleの支社にMicrosoftはなれないですよね。なのでWindowsは動かないです。
dockerが支社をバンバンつくってバンバン潰します。支社の中では本社のルールで動きます。つまりコンテナの中ではLinuxのプログラムしか動かないのです。
ちなみにMac上のDockerはMac上で動いているLinuxの上で動いています。で、このLinuxがどうやって動いているのかは仮想化やハイパーバイザーをググってみると良いかもしれません。
最後に
dockerもそうだしAWSなんかもそうだけれどネットワークのことを理解すると一気に扱いやすくなります。