目次

    チーム内での効率的な環境構築について

    開発環境構築の 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 build
    docker-compose up -d

    sleep 20

    docker-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 に詳しくない非エンジニアが参加したとしても、迷うことなく皆と一律の環境をつくることができます。

    また、メンバーが参加する度に、環境構築について難しい説明が必要なくなります。
    ぜひ、案件に取り入れてみましょう!

    それではまた次回の記事でお会いしましょう!
    PREV
    2024.03.11
    GitHub Actions使ってReactアプリをFirebaseに自動デプロイする
    NEXT
    2024.03.11
    【動画紹介】成功の原則/レイ・ダリオ著