转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_4.html

安装pm2守护进程,备用

npm install -g pm2

创建/srv/www文件夹

mkdir /srv/www

进入/srv/www文件夹

cd /srv/www

克隆服务器的本地仓库

git clone /data/git/test.git

把/srv/www的权限给git

chown -R git:git /srv/www

创建git钩子文件post-receive,会在接收完push请求后执行,这个文件不一定存在,不过无所谓

vim /data/git/test.git/hooks/post-receive

内容如下

echo "==========================================="
cd /srv/www/test
unset GIT_DIR
git pull
if [ -f "package.json" ];then
echo "存在package.json文件,开始部署"
echo -e "node version: \c"
node -v
echo -e "npm version: v\c"
npm -v
# 杀掉进程test-production
pm2 delete test-production
# 删除node_modules
rm -rf node_modules
# 重新初始化
npm install
# 以test-production为名启动pm2的守护进程
pm2 start index.js -i --name "test-production"
else
echo "package.json文件不存"
fi
echo "==========================================="

然后让这个文件变为可执行文件

chmod +x /data/git/test.git/hooks/post-receive

然后把权限重新给git一下

chown -R git:git /data/git

然后在客户端提交一下试试看

注意remote开头的那一段,都是服务器端打印的。

不过此时pm2的守护进程是由git用户开启的,其他用户看不到,pm2在start的时候虽然有个--username的参数,貌似是可以指定用户,但是并没有什么效果,有谁知道可以说一下

所以如果要操作此守护进程,比如查看实时日志,需要切换到git用户,。

好了,现在git自动部署已经完成了。

【前端】CentOS 7 系列教程之四: 配置 git 服务器自动部署的更多相关文章

  1. Centos 6.5使用vsftpd配置FTP服务器教程

    Centos 6.5使用vsftpd配置FTP服务器教程什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.vsftpd 的名字代表”ver ...

  2. RabbitMQ系列教程之四:路由(Routing)(转载)

    RabbitMQ系列教程之四:路由(Routing) (使用Net客户端) 在上一个教程中,我们构建了一个简单的日志系统,我们能够向许多消息接受者广播发送日志消息. 在本教程中,我们将为其添加一项功能 ...

  3. Windows使用Apache2配置Git服务器

    Windows使用Apache2配置Git服务器 本文地址:http://www.cnblogs.com/cnscoo/p/3373095.html Git下载: 网站:https://code.go ...

  4. [转载]Ubuntu安装配置 git 服务器和客户端

    原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...

  5. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  6. 【前端】CentOS 7 系列教程之三: 搭建 git 服务器

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_3.html 上一篇我们安装好了git,这一篇我们搭建git服务器 创建一个用户组 groupadd g ...

  7. 【前端】CentOS 7 系列教程之一: 安装 node 最新版

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_1.html 此系列教程从零开始,安装node.mysql.git,nginx.并且设置git自动部署. ...

  8. Git系列教程三 配置与基本命令

    一.安装Git 网上有很多安装教程,可以参考.这里使用的是Windows版本的Git,点击这里下载. 二.基本设置 安装完成后,通过点击鼠标右键就可以看到新添加了俩个Git命令:Git GUI Her ...

  9. CentOS安装配置Git服务器(gitosis)

    主要参考: http://blog.csdn.net/dengjianqiang2011/article/details/9260435 辅助参考: http://freeloda.blog.51ct ...

随机推荐

  1. codevs——2693 上学路线(施工)

    2693 上学路线(施工)  时间限制: 2 s  空间限制: 16000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 问题描述 你所在的城市街道好像一个 ...

  2. Java普通员工管理系统

    login GUI界面(登录) package 普通员工管理系统; import java.awt.event.ActionEvent; import java.awt.event.ActionLis ...

  3. 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

    方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址.这个特性给Java带来了更强大的动态扩 ...

  4. PHP用CURL发送Content-type为application/json的HTTP/HTTPS请求

    <?php $headers = array( "Content-type: application/json;charset='utf-8'", "Accept: ...

  5. PHP实现INT型,SHORT型,STRING转换成BYTE数组

    实现PHP实现INT型,SHORT型,STRING转换成BYTE数组的转化: class Bytes { public static function integerToBytes($val) { $ ...

  6. keras常见问题解答

    https://keras.io/zh/getting-started/faq/ https://keras.io/zh/ https://github.com/keras-team/keras/tr ...

  7. Solidworks 如何绘制投影曲线

    1 画一个半圆,然后旋转360°得到一个正圆   2 在视图中任意绘制一条平面曲线(用样条曲线绘制)   3 退出草图,在特征选项卡中点击"投影曲线"   4 将草图2(一条平面曲 ...

  8. 搭建企业内部DNS服务器,docker 部署内部 dnsmasq

    获取镜像 docker pull jpillora/dnsmasq 配置域名 # http://oss.segetech.com/intra/srv/dnsmasq.conf #log all dns ...

  9. 李洪强iOS开发之 - 指定刷新tableview的某一组

    李洪强iOS开发之 - 指定刷新tableview的某一组

  10. LeetCode——Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...