git自动更新部署

发布 : 2019-01-14 分类 : 版本控制 浏览 :

利用git hooks实现自动更新部署 先在Linux 搭建GIT服务

添加git钩子

cp /home/git/test/hooks/post-update.sample /home/git/test/hooks/post-update
vim /home/git/test/hooks/post-update

1
2
3
4
5
6
#!/bin/bash
#项目部署位置
cd /webapps/test
unset GIT_DIR
git checkout master
git pull
1
chown -R git:git /home/git/test.git

部署项目

部署过程略过

要使用路径来进行下载仓库,如果用域名 ‘git@localhost:test.git’ 会有权限和需要输入密码的问题,这会导致前面写的构造执行不成功
git clone /home/git/test.git /webapps/test

需要先下载一遍并且更新一下 因为在更新过程会创建一些文件
然后再修改文件的所属人和所属组
主要是因为 post-update 需要有操作更新文件的权限

chown -R git:git /webapps/test

在本地更新文件

1
2
3
4
5
6
git clone git@zhouinfo.git:test.git

echo "test">test.txt
git add test.txt
git commit -m "test" test.txt
git push

然后会触发钩子 到部署目录更新

1
2
3
4
5
6
7
8
9
10
11
12
git config --global credential.helper store

git pull #记录账号密码 下次就不用再次输帐号密码了


vim blog.sh
cd /webapps/blog
git pull

chmod 755 blog.sh

vim hooks.json
1
2
3
4
5
6
7
8
9
[
{
"id": "blog-webhook",
"execute-command": "/var/lib/webhook/blog.sh",
"command-working-directory": "/var/lib/webhook"
}
]

./webhook.sh hooks.json -verbose > /dev/null 2>&1 &
1
2
3
docker run -d -p 3000:3000 -p 222:22 --name gitea -v /docker/gitea:/data -e TZ="Asia/Shanghai" -e DB_TYPE=mysql -e DB_HOST=zhouinfo.site:3306 -e DB_NAME=gitea -e DB_USER=root -e DB_PASSWD=test -e DOMAIN=zhouinfo.site  -e  --restart=always gitea/gitea:1.17.3

docker run -d -p 222:22 -p 1443:443 -p 8098:8098 --name gitlab -e TZ="Asia/Shanghai" -v /gzpykj/gitlab/config:/etc/gitlab -v /gzpykj/gitlab/logs:/var/log/gitlab -v /gzpykj/gitlab/data:/var/opt/gitlab --restart always --privileged=true gitlab/gitlab-ce:15.3.4-ce.0
本文作者 : zhouinfo
原文链接 : http://blog.zhouinfo.site/2019/01/14/git%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%83%A8%E7%BD%B2/
版权声明 : 本博客所有文章除特别声明外,均采用 CC Apache License 2.0 许可协议。转载请注明出处!
留下足迹