PHP開発環境をDockerで構築する「phpstack」レビュー
最近は開発環境を仮想化するケースが増えてきました。元々WindowsではPHPの開発時にVMWare Playerを使ってLinuxを動かして開発することが多かったですが、それがMac OSXやLinuxであっても有益に使われています。一つのプロジェクトであれば環境をローカルに作ってしまっても良いのですが、プロジェクトごとに異なる環境を用意したり、LAMPだけに限らないアーキテクチャの場合に開発に携わる人員分、環境を作るのは大変です。
そこで今回はphpstackを紹介します。CoreOS上にDockerを使って様々なサービスをインストールして様々なプロジェクトに対応できるPHP開発環境を構築してくれます。リモートにログインせずとも使えるという利点があります。
必要なもの
オプションとして、
があると便利です。今回はMac OSX + Vagrant/VirtualBoxで構築しています。Windowsの場合はFigが公式サポートされていませんが、Figが動くなら同じように構築できるはずです。
仮想環境立ち上げ
まずphpstackをクローンします。
$ git clone https://github.com/kasperisager/phpstack.git
次にVagrantを立ち上げます。
$ cd phpstack $ vagrant up
しばらくかかりますが、終わったらDocker Composeを実行します。まずはインストールをします。
$ curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose
次にDOCKER_HOSTを仮想環境内のサーバに向けて設定する必要があります。
$ export DOCKER_HOST=192.168.33.10:2375 $ docker-compose up
これで仮想環境内にPHP開発に必要なソフトウェアが一気にインストールされていきます。
インストールされるサービスは次の通りです。
- Nginx
- MySQL
- MongoDB
- PHP-FPM
- HHVM
- Memcached
- Redis
- Elasticsearch
これだけあれば大抵のプロジェクトでは事足りると思います。
さらにShipyardというDocker管理システムがインストールされますので、さらに追加でサービスをインストールすることもできます。Shipyardは http://192.168.33.10:8080/ にアクセスします。
Webサーバにアクセスする場合は、 http://192.168.33.10/ にアクセスします。これはphpstackの www/default
ディレクトになります。
$ cat www/default/index.php <?php phpinfo();
インストールされるPHPはバージョン5.5.9になります。
パスワード設定されているサービスについては docker-compose.yml を見ると設定が分かるようになっています。
$ cat docker-compose.yml : mysql: image: tutum/mysql ports: - "3306:3306" environment: MYSQL_PASS: password :
phpstackを使えば必要なサービスが揃った状態で開発が開始できます。さらにメンバーの環境も統一できますので、生産性が向上するのではないでしょうか。