美文网首页
Hooks实现自动化部署

Hooks实现自动化部署

作者: 我是李小胖 | 来源:发表于2019-05-16 17:33 被阅读0次

以前尝试部署代码到服务器的方式有用到Github Hook或者ftp,但使用起来都有各自的缺陷,然后就发现了git hooks这个方法,查了一些资料再自己尝试过后,觉得还不错,记录下简单流程。

在服务器初始化一个远程git仓库

git initgit init --bare 的区别

初始化出来的仓库是不一样的,前者初始化的是一个普通的仓库,其中 .git 文件夹是隐藏的,并且能看见该仓库下所有的源码。而后者初始化出来的仓库中的文件,就是 .git 中的文件夹,但不能像前者那样直接浏览或修改仓库中的代码。

使用 git init --bare 初始化一个远程仓库。

该仓库是用于项目部署的。在我们本地开发完成后,将项目push至该仓库后,将自动部署网站。

root@iZbp1cc04oqq: mkdir -p /git/laravle-vue.git
root@iZbp1cc04oqq: cd /git/laravle-vue.git
root@iZbp1cc04oqq: git init --bare

网站的根目录git clone服务器仓库
root@iZbp1cc04oqq: cd /var/www/html
root@iZbp1cc04oqq: git init
root@iZbp1cc04oqq: git clone /git/laravel-vue.git
root@iZbp1cc04oqq: chmod -R 777 ../laravel-vue

为远程仓库设置一个 hook
root@iZbp1cc04oqq: cd /git/laravel-vue.git/hooks
root@iZbp1cc04oqq: vim post-receive 

vim编辑post-receive


#!/bin/sh
unset GIT_DIR
NowPath=`pwd`
DeployPath="/var/www/html/laravel-vue"
cd $DeployPath
git add . -A && git stash
git pull origin master
composer install --ignore-platform-reqs
#下面两步是我同步vue代码
#npm install #安装npm包
#npm run production

cd $NowPath
echo "同步完成"
exit 0

该脚本添加可执行权限

root@iZbp1cc04oqq: chmod +x post-receive

为本地仓库添加remote源

这个客户端本地仓库,即开发的机子的本地仓库,添加remote源,以后往这个remote push代码时,就会自动触发上面的脚本。

$   git remote add deploy root@ip:/git/laravel-vue.git   //服务器上我用的root用户
$   git push deploy master

如图

image

相关文章

  • docker下使用svn的hook实现精简版的自动部署

    1.背景 网上有很多文章描述svn下如何使用hooks来实现自动化部署。本文侧重描述在docker环境的具体实现(...

  • Hooks实现自动化部署

    以前尝试部署代码到服务器的方式有用到Github Hook或者ftp,但使用起来都有各自的缺陷,然后就发现了git...

  • ubuntu16.04使用jenkins和docker搭建自动化

    Docker自动化部署流程:docker实现自动化部署流程图.jpg 1、搭建jenkins环境: 参照:http...

  • git利用post-receive自动化部署

    要求 实现git push直接完成代码部署到服务器的目录 实现方式 利用git的hooks中的post-recei...

  • git hooks 实现自动部署

    我们 需要两个目录 git 服务器仓库目录 例如: /mnt/test.git web服务器目录 例如: ...

  • 随笔

    最近要做有关自动化部署的事情,主要使用ansible来实现自动化部署,最近会分享一些有关ansible的使用方法

  • 使用travis结合docker实现前端自动化部署

    使用travis结合docker实现前端自动化部署 2020年接近尾声,才刚开始摸索自动化部署,希望一切都来得及 ...

  • 持续集成部署

    持续集成部署 前期对于推送的UI自动化已经实现了半自动化,当前做的工作就是彻底摆脱人力,实现全自动化,就是现在正在...

  • [Docker] Docker 之 Jenkins自动化部署

    Docker搭建微服务自动部署 <架构探险之路>,让我们来看看如何实现基于Docker的Jenkins自动化部署。...

  • 小试jenkins

    背景尝试在本地搭建一个自动化上线工具,首先尝试简单的上线部署功能,并没有实现自动化部署(需要手动构建)。 所需环境...

网友评论

      本文标题:Hooks实现自动化部署

      本文链接:https://www.haomeiwen.com/subject/kkqwaqtx.html