git の hook を使って開発環境を自動デプロイ
git の hook を使って開発環境を自動デプロイ。
前回に引き続き、さくらのレンタルサーバに設定したSmart HTTP な
git 環境に対して、今度は開発環境を自動デプロイしてみます。
前回同様対象さくらのレンタルサーバは以下の通り
サーバ上のレポジトリは ~/repos
作成したgitレポジトリは ~/repos/sample.git
■ 手順
1) 公開ディレクトリへのclone
2) 本番機/開発機で使いまわせる.htaccessの作成
3) git hook の設定
1) 公開ディレクトリへのclone
さくらのレンタルサーバのweb公開エリアである ~/www 以下で
作成したレポジトリをcloneします。
1-1) git clone
% cd ~/www;pwd
% git clone /home/foobar/repos/sample.git sample
2) 本番機/開発機で使いまわせる .htaccessの作成
開発機はリリース前なので見せちゃ困ると思うので、
basic認証をつけておきます。
せっかくなので作った.htaccess.もgitの管理下に入れてしまい、
本番にはおいてあっても無害なものにしておきます。
% vi .htaccess
----------------------------------------------------------------------------
SetEnvIf Host "^本番ドメイン名$" prod
SetEnvIf Host "^foobar.sakura.ne.jp$" develop
satisfy any
order deny,allow
deny from all
allow from env=prod
AuthUserFile "/home/foobar/.htpasswd"
AuthGroupFile /dev/null
AuthName "Input Id and Password."
AuthType BASIC
require valid-user
----------------------------------------------------------------------------
3) git hook の設定
3-1) git hook (post-update)の設定
ここでのポイントは GIT_DIR を unset しておくこと。
% cd ~/repos/sample.git/hooks;pwd
% vi post-update
----------------------------------------------------------------------------------------
unset GIT_DIR
cd /home/foobar/www/sample
git pull
----------------------------------------------------------------------------------------
% chmod 755 post-update
完成です。
この状態で、gitレポジトリに変更が加わると
http://foobar.sakura.ne.jp/sample/ が自動的に反映されます。
hookの中身はshellスクリプトなので、別サーバにrsyncしたりと
融通がききます。
次回は、さくらのレンタルサーバでmysqlをコマンドラインで
弄る記事を書きたいとおもいます。