目次
チーム内での効率的な環境構築について
開発環境構築の Readme にこんな記述ありませんか?
次のとおりにコマンドを実行する。$ docker-compose build$ docker-compose up -d$ docker-compose exec php bash$ cd /var/www/src$ composer install$ php artisan migrate$ php artisan db:seed
もちろん、このぐらいの手順であればそれほど、手間ではありません。
でももうちょっと効率化したいところです。
- もう少し込み入った手順が必要になってきたら?
- 新しいメンバーが案件に入ってきたら?
- 数カ月経ってから Readme の手順どおりに環境を作れますか?
もっとかんたんに、そして誰でも作れるものにしましょう!
Makefile を作るのです
Makefile を用意すれば、コマンドひとつで環境がつくれます!
例えば
$ make up
とコマンドひとつを実行することで、必要なコマンドが自動的に実行されます。
Makefile の中身
このように書きます。
書いていることは、手順書と同じです。
注意点として、インデントは必ず「タブ」を使用してください。
up:docker-compose builddocker-compose up -dsleep 20docker-compose exec -T php bash -c "\cd /var/www/src && \cp .env.example .env && \composer install && \php artisan key:generate && \find ./storage -type d -exec chmod 0777 {} \; && \php artisan migrate && \php artisan db:seed && \php artisan some:first-command && \php artisan some:second-command && \npm install && \npm run build \"
typo があったりで実際のところ、試行錯誤はあります。
でもそれは人間相手の手順書にも同じことが言えます。
利点
「実行可能な手順書」と解釈すれば、これは非常に強みです。
例えば docker や Laravel に詳しくない非エンジニアが参加したとしても、迷うことなく皆と一律の環境をつくることができます。
また、メンバーが参加する度に、環境構築について難しい説明が必要なくなります。
ぜひ、案件に取り入れてみましょう!
それではまた次回の記事でお会いしましょう!