アイスランド&ヨーロッパ旅 2024
9/6からアイスランドに2週間滞在。その後はヨーロッパを周遊する旅に出ます
この記事ではDebian GNU/Linux 8にインストールしたPHP 7.0.2を使っています。
これまでは、phpなどを開発する際に、毎回、ローカル環境にApache立ててという形で構築してましたが、時代はとっくにインフラをコードで書いてリビジョン管理だったり、チーム内で配布するというスタイルになっております。
しかし、私の所属しているチームにまだdockerなどを利用する文化がなく、皆のローカル環境がえらいことになってるという事態を知って今回改めてdocker導入にあたり作成したものを共有する流れとなりました。
環境構築時の工数なんて、dockerfileを作成する人が苦労するだけとなり、チームはその苦労にあやかる形(まあ、ご苦労様という気持ちで優しく接してあげたらいいと思います)になりつつあると思ってます。
今回は、phpのプロジェクトでよく使われてるcakePHP(ここでは3)の環境を作成するdockerファイルの紹介となります。
jsではgulpやwebpack, javaならgradle等ビルドツールがある中で、phpならcomposerですよね。
cakephpやLaravelなどのフレームワークなどでおなじみですが、composerの環境パスなど以外に面倒な事があったり、自分のPCの環境がどんどん汚染されるので、dockerなどで利用するときだけ、コンテナ立てて使わなくなったら破棄すればいいじゃんという考えのもと、composerの環境変数などはコンテナ内に設定して、phpファイルは、ホスト側(自PC)に配置すればすぐ使えるし、環境変数とかも関係ないし、例えばデザイナー等の環境にもdockerさえあればローカル環境で開発も可能になります。
初期画面(localhost:8765/app/) |
---|
install docker ->
https://www.docker.com/
$ git clone https://github.com/borderhub/docker-php-mysql
$ docker-compose up -d
$ docker-compose run --rm php composer create-project --prefer-dist -n cakephp/app app
.env L15
WORK_DIRPATH=/yourDirectoryPath/docker-php-mysql
cd webapps/app/config/app.php
app.php L225
before
'host' => 'localhost',
after
'host' => 'my_mysql',
※今回の環境では
コンテナ内へ移動
$ docker exec -it my_php bash
コンテナの削除
$ docker rm コンテナID
$ docker rm `docker ps -a -q`
イメージの削除
$ docker rmi コンテナID
$ docker rmi $(docker images | awk '{print $3}')
・単純にcakeビルドを行った際の初期ファイル群が生成されるだけですので、
細かな使用法などは、下記を参照ください。
https://book.cakephp.org/3.0/ja/index.html
・実際のプロジェクトで利用する際には、コンテナ名など適宜変更お願いします。
今回は単純にcomposerを簡単に作成する意図ですので、細かなカスタマイズは各自で対応をお願いします。
まだまだ、dockerにしろvagrant,ansibleなど現在学習中の身ですが、このような技術によりフロントエンダーな私でもAPIサーバーを立てて、画面の実装などを行えるようになりましたので、まだ、導入されていないチームに属している方は騙されたと思って試していただけたらと思います。
vagrantとdockerどちらも状況に応じて利用する形になると思いますが、
個人的には、dockerを細かなタスク単位で活用できるように勉強していきたいと思います。