【前端】CentOS 7 系列教程之四: 配置 git 服务器自动部署
2024-10-20 00:26:43
转载请注明出处: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自动部署已经完成了。
最新文章
- Linux系统检查查看桌面环境
- ALV 顶栏的按钮设定
- CSS魔法堂:再次认识font
- Python WMI获取Windows系统信息 监控系统
- 1 mysql的安装
- NEC学习 ---- 模块 -多行式面包屑导航
- /etc/passwd和/etc/shadow
- sql基础查询
- Android 与 Webservice 的快速保存
- Android开发应用异步检查更新代码
- [React Native] Create a component using ScrollView
- 收藏的一些javascript片段
- OpenGL------三维变换
- Cordova(PhoneGap) 环境搭建与基础
- 2017计算机学科夏令营上机考试-C:岛屿面积
- java中JFrame类中函数addWindowListener(new WindowAdapter)
- Mac 下 搭建 svn 服务器
- MYSQL数据库数据拆分之分库分表总结
- linux 命令ls
- java框架之SpringBoot(10)-启动流程及自定义starter
热门文章
- 解决本地调用office组件成功,但是发布到IIS中出现的错误(检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败)
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- 【面试 struts2】【第三篇】struts2的问题
- Javascript:如何调用全局变量?
- 【转】构造HTTP请求Header实现“伪造来源IP”
- C# - CLR
- HDU 1085 Holding Bin-Laden Captive!(母函数,或者找规律)
- hibernate的查询缓存和二级缓存的配合使用
- saltstack安装配置(syndic)
- 使用脚本删除ios工程中未使用图片