こんにちは、ファルコンMです。
今回は以下のことをしたい。
- ローカル環境からサーバーのgit リポジトリにpush した後、そのpush したものの一部をwebサイトに公開する。
- push するgit リポジトリは、/var/www/html/git/test.git
- 公開するファイルの置き場所は、/var/www/html/
開発環境
- さくらVPS 1Gプラン
- Ubuntu 16.04
- git 2.7.4
サーバー側のgit リポジトリの設定
push するgit リポジトリ( test.git )の設定
$ cd /var/www/html/git/test.git/hooks $ sudo cp post-update.sample post-receive $ sudo vi post-receive
post-receive を新しく作成します。post-receive はgit push した後実行されるスクリプト。post-receive を編集。
#!/bin/sh cd /tmp git clone /var/www/html/git/test.git cp /tmp/( サイト公開したいファイルの場所) /var/www/html/( サイト公開したい場所 ) rm -rf /tmp/test
設定はここまで。
ローカルでpush した後、サイトにアクセスすると更新されている。
もし、ブランチを指定したい場合は、「git clone -b ブランチ名 リポジトリ」 とコマンドを変更する。サイトの自動更新をするブランチを決めておいてもいいかもしれない。
ローカルのgit からpush するときは、URL をhttps:// とした場合は、シェルスクリプトはwww-data で実行される。Permission エラーが出たときは、権限がどうなっているかを調べたほうがよい。
git push した後、自動的にいろいろやりたいって場合が多い。post-receive は、git push されたときに実行される。post-receive にいろいろとスクリプトを書き込んでやればいろいろな操作ができそうだ。ただし、もう一度言うが、post-receive はwww-data のユーザーが実行する。パーミッションなどは気をつけたほうがいい。シェルスクリプトはユーザー変更はできないみたいだ。
コメントを残す