Git HooksでDocker内を操作したい

はじめに

ブランチ切り替えた時に「composer dump-autoload」が出来たら便利なんじゃないか?とふと思ったので、Git Hooksを使ってやってみようと思った次第です。

やってみよう

① プロジェクトのgitconfigを設定してhooksを使えるようにしよう!

/project/.git/configにhooksの情報を記述
・coreセクションにhookspathを設定

[core]
    ~(略)~
    hookspath=.git/hooks ←新たに追加
[remote "origin"]
    ~(略)~

② 何をhookするか決めよう!

/project/.git/hooks/には様々なgitアクションをhookできるようになっています。今回は、ブランチ切り替えた時なので「post-checkout」を編集もしくは、新規作成します。

他にhookできる内容は下記リンクを参照ください。
https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%83%95%E3%83%83%E3%82%AF

③ 処理を書こう!

②の手順で用意した 「 post-checkout 」に直接記載します。

※windows環境で作成しています

#!/bin/sh
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "docker exec -i [container-name] bash -c \"composer dump-autoload\""

dockerに入って何かするってのがうまくいかなかったので、powershellを経由してdockerに入り、-cでうまくコマンドを渡してやるって感じです。

最後に

色々できそうなので、あれしたいっすね!
共有とか!コミットをフックしたりとか!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です