标签归档:自动部署

Git服务器实现Web代码自动部署

服务器上新建git仓库
mkdir /project.git
cd /project.git
git init –bare

克隆仓库到web发布目录
git clone /project.git /webroot
cd /webroot
git checkout master

在git远端仓库的hooks目录下新建post-receive文件 (post-update也可以),代码如下:
#!/bin/sh

DEPLOY_DIR=/webroot/
unset GIT_DIR
cd $DEPLOY_DIR
git pull origin master

保存后,赋与该文件git用户执行权限

让git用户对webroot目录有写权限
setfacl -R -m u:git:rwx /webroot
setfacl -R -m d:u:git:rwx /webroot

本地开发目录中创建git仓库
git init
git remote add origin git@域名:/project.git

以后每次执行git push origin master 时,服务器代码将自动部署到/webroot目录

————————————————-

#!/bin/sh

COMMIT=$(git log -1 –pretty=format:”%s”)

if [ “$COMMIT” == “publish” ];then
DEPLOY_DIR=/webroot/
unset GIT_DIR
cd $DEPLOY_DIR
git pull origin master
fi