laravel
docker
LaraDock

LARADOCK で LARAVEL を開発しよう(Part 1)

1. はじめに

この記事でざっとDOCKERでLARAVELの開発環境設定方法について紹介したいと思います。

2. DOCKERの基本概念

DOCKERについ別の記事で紹介したいと思いっていますが、今回LARADOCKのことがわかりやすいようにDOCKERの基本概念を共有させていただきます。

IMAGE:
IMAGEは一つの仮想マシンの設計です。
注意:IMAGEは仮想マシンではなくて、仮装マシンの設計だけです。
わかりやすいように、IMAGEがOOPのCLASSと同じだと思いってもいいです。OOPのCLASSなら、一つのCLASSを作成するため、そのCLASSの関数や変数などを定義しないといけません。DOCKERのIMAGEの場合、同じのロジックで、作成した仮想マシンの中に、なんのOSとかそのOSになにをインストールしたいのかとかを定義しないといけません。
IMAGEの属性が書かれるファイルはDockerfileと呼びます。

Dockerfileの例:

Dockerfile
FROM ubuntu:14.04

RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449

RUN apt-get update -y \
    && apt-get install -y software-properties-common wget \
    && wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - \
    && add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \
    && apt-get update -y \
    && apt-get install -y hhvm \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN mkdir -p /var/www

ADD server.ini /etc/hhvm/server.ini

RUN usermod -u 1000 www-data

WORKDIR /var/www

CMD ["/usr/bin/hhvm", "-m", "server", "-c", "/etc/hhvm/server.ini"]

EXPOSE 9000

上記はHHVMというIMAGEのDockerfileです。詳細を見ると、このIMAGEのOSはubuntu:14.04です。あとそのUBUNTU仮想マシンの上でHHVMをインストールするため、たくさんのコマンドを実行するように定義しました。
最後の行は「EXPOSE 9000」なんですが、意味は何かというと、外からこのHHVMに9000ポートでアクセスできるという意味です。

CONTAINER
CONTAINERはIMAGEのインスタンスで、仮想マシンです。
IMAGEはOOPのCLASSと同じなら、CONTAINERはOOPのOBJECTと同じだと連想してもいいです。
複数のCONTAINERの連携を管理するため、DOCKERーCOMPOSEを使います。

3. LARADOCK

LARADOCKのホームページ:http://laradock.io/
LARADOCKは何かというと、LARAVELの開発やデプロイなどのためのIMAGEのDockerfileのセットです。それらの中に、使いたいIMAGEを決めて、PULLして、実行します。
そういえば、LARADOCKを使わないで、自分で最初から、自分の好きなIMAGEを洗濯して、自分のDockerfileを書いて使ってもいいという人が結構いると思いますが、LARADOCKから自分のカスタマイズができるから、それを使うのがいいでしょう。
LARADOCKの使い方は、LARADOCKのホームページに細かく書いてあるが、パーツ2で少し紹介したいと思いっています。ぜひ参考してください。
https://qiita.com/nguyenngocpfievk56/items/241c415c662b8499d96f

メリット:
・DOCKERを使ったら、どんなPCでも、どんなサーバーでも、DOCKER以外、何もインストールしなくて、どんなプロジェクトでも実行できます。そのため、PCやサーバーなどのための不明点がなくなります。
・仮想マシンなので、色々技術を導入して試しても安全で、本番に影響がでるのは心配なしです。
・LARADOCKがちゃんと作られたので、使う可能性があるものが全部入ってると思います。便利だし、使いやすいです。

4. 結論

これから、新しプロジェクトがあれば、DOCKERを使って開発したいと思いっています。特に、LARAVELのプロジェクトなら、LARADOCKをカスタマイズして使いって見ます。