使用Git的钩子实现自动部署

2016/10/8 文章分类: 操作系统相关
  1. 通过服务器系统自带git或者其他的方式,例如gogs,搭建git仓库。这里要注意,搭建git仓库时,要创建一个git用户。对于客户端而言,服务器是远端;对于服务器本机而言,就是本机。
  1. 在git仓库里,创建一个仓库,用于客户端上传文件使用。通过类似gitlab或者gogs之类工具,这里创建的仓库是在指定的位置。

    这一步的操作是在服务器上,记住路径,例如/var/git/testRep。

  2. 进入服务器上的部署文件夹,假如是/var/testDeploy,

    在该目录下,运行:

    
    git clone /var/git/testRep /var/testDeploy
    
    

    相当于初始化本地一个库,后续就可以通过git pull来更新文件了

    注意:删除已有的文件夹中的文件、删除.git文件夹之后,要切换到git用户之下,使用git用户重新git clone一遍,才可以自动的进行部署,因为部署需要用git用户进行操作,在root做所有的操作,git就没办法把更新的文件部署到发布的目录下面。

  3. 在服务器上的仓库/var/git/testRep.git/下面,找到hook文件夹,找到其中的post-receive文件,这个是响应在post的钩子文件,运行这个文件定义的脚本,对这个文件脚本进行编写:

    
    unset GIT_DIR
    DeployDir=/var/testDeploy/
    cd $DeployDir
    git add . -A && git stash
    git pull origin master
    
    

    实现把文件pull部署文件夹,从而实现自动部署。

    以上方法步骤,验证通过。