使用宝塔部署node项目_使用宝塔面板进行项目的自动部署WebHook
首先你要知道什么是WebHook,如果你真的不想知道那也没关系。总之就是在你push到git仓库时会从git仓库触发一个http请求。关于http的地址根据你不同的git仓库有不同的方式去配置。
首先配置宝塔面板,你需要安装宝塔插件中的 WebHook
随便起一个名字然后保存
这时你会在列表中看到新增加的名称,点击查看密钥 获取密钥并配置到git仓库中,如下gitee.com仓库
注意ip和端口号之间有一个冒号 :
关于使用git ssh 需要你配置ssh密钥,可以使用
ssh-keygen -t rsa -C “name@mail.com”如果没有才执行这个命令并将公钥设置为部署公钥
查看命令是 cat ~/.ssh/id_rsa.pub
如下代码点击编辑后输入并保存
需要替换gitPath的项目储存路径和 gitSSH 为你的项目的gitSSH地址信息
#!/bin/bash
#输出空白行 隔断
echo ""
#输出当前时间
date +"%Y-%m-%d %H:%M.%S"
echo "Start"
#判断宝塔WebHook参数是否存在
#if [ ! -n "$1" ];
#then
# echo "param参数错误"
# echo "End"
# exit
#fi
#git项目路径
gitPath="/www/wwwroot/www.daohang.dev"
#git 网址 这里要修改成你的仓库地址
gitSSH="git@gitee.com:yanlong-li/daohang.dev.git"
# 定义自定义脚本的文件名称
buildScript="buildScript.sh"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitSSH gittemp
mv gittemp/* gittemp/.[^.]* .
rm -rf gittemp
fi
#拉取最新的项目文件
#git reset --hard origin/master
echo "正在拉取远程代码"
git pull
#设置目录权限
#chown -R www:www $gitPath
echo "拉取结束"
else
echo "该项目路径不存在"
echo "End"
exit
fi
# 下面是自定义的一个脚本,用于自定义的执行动作 如果不需要可以删除
if [ -f "$buildScript" ]; then
chmod +x $buildScript
./$buildScript
else
echo '不存在执行脚本';
fi
echo "脚本执行结束"
下面是我用来编译 Vue的一个脚本,也一起放上来
前提你要安装了 mp2管理器 或者手动安装了 node+npm
# 编译脚本 buildScript.sh
logUpdatePath="log/update"
logBuildPath="log/build"
# 更新依赖
logDate=$(date +"%Y-%m-%d-%H-%M")
if [ ! -d "$logUpdatePath" ]; then
mkdir -p $logUpdatePath
fi
if [ ! -d "$logBuildPath" ]; then
mkdir -p $logBuildPath
fi
echo "更新依赖"
npm install
echo "编译项目"
npm run build
echo "设置权限"
chown -R www:www dist/[^.]*
echo "运行结束"
注意 有时候可能在Webhook中无法识别到node和npm,重装WebHook即可
使用图中的方法进行新建一个,然后提交后点击测试,然后查看日志,如果是空白则需要重装WebHook
使用宝塔部署node项目_使用宝塔面板进行项目的自动部署WebHook相关推荐
- vue项目前端服务器,【前端技术】vue自动部署项目到服务器
想要的功能 前端打包之后自动上传文件夹到服务器 在不提交代码的前提下,也可以完成上述功能 经过各种百度谷歌,最后有两种方案可以选择 第一种是写一个shell,通过lftp上传文件夹,但是会有个权限的问 ...
- 软件测试真实项目_企业中软件测试的项目流程
首先做软件测试你得先清楚软件测试的概念吧,什么是软件测试,软件测试的意义. 其次,那么开始做一个项目的软件测试,我们要从哪里入手,一般我们都从需求介入,所以参加需求评审,需求澄清,到最后的需求落地. ...
- umi脚手架搭建的项目_还在从零开始搭建项目?手撸了款快速开发脚手架!
之前开源了一款项目骨架mall-tiny,完整继承了mall项目的整个技术栈.总感觉mall-tiny集成了太多中间件,过于复杂了.这次对其进行了简化和升级,使它成为了一款拥有完整权限管理功能的快速开 ...
- 手机python软件怎么创建项目_创建成功的 Python 项目
创建成功的 Python 项目 Patrick Altman 2012 年 3 月 14 日发布 Python 开源项目的生态系统丰富多样.您可以在这一雄厚的基础上完成下一个开源项目的生产.此外,这也 ...
- eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 42W+,如下图: 2017 年由于种种原因,就没有 ...
- JAVA工作总是维护项目_开发维护大型 Java 项目的建议
原标题:开发维护大型 Java 项目的建议 假设你是正在开发和维护一个包含2000个类并使用了很多框架的Java开发者.你要如何理解这些代码?在一个典型的Java企业项目小组中,大部分能够帮你的高级工 ...
- svn导出java项目_【SVN】导出项目后报错汇总
1.jsp页面内:标点符号,引入报错 解决方法:关闭此项目的jsp验证,右键,最下面一个,Verification,右边一溜只留一个dtd就好 2. 编码问题-乱码 刚拉下来的项目编码可能与Myecl ...
- react项目_如何从零开始创建React项目(三种方式)
在开发React项目前最关键的当然是项目的创建,现在的前端工程化使得前端项目的创建也变得越来越复杂,在这里介绍三种从零开始创建React项目的方式,分别是在浏览器中直接引入.使用官方脚手架create ...
- travis-ci自动部署_如何使用Travis CI设置高级自动部署
travis-ci自动部署 by Amir Off 由Amir Off 如何使用Travis CI设置高级自动部署 (How to set up advanced automatic deployme ...
最新文章
- UVa11038 - How Many O's?(统计0的个数)
- select2 api参数的文档
- STM32之CAN---工作/测试模式浅析
- 英特尔SVT-AV1 0.8 AV1视频编码基准发布
- Python游戏开发--外星人入侵(源代码)
- 编写干净的测试–分而治之
- 拼图项目:延期的后果
- spring mvc ModelAndView向前台传值
- Discuz! X3.2后台管理员登录不了的问题
- 寫程式不需要天份,也不需要熱情
- poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)
- Java基础复习---线程创建
- 16.2互联网媒体信息讽刺识别
- 【codevs3290】华容道
- mysql relay log参数汇总
- Python 学习笔记->《流畅python》学习
- 中标麒麟的下载和安装
- am调制解调仿真matlab,AM调制与解调仿真matlab
- 手机软件设计大赛报名信息
- IC卡参数公钥之 AID和RID
热门文章
- Jquery获取服务器端控件ID的方法
- 提示错误:“应为“providerInvariantName”参数的非空字符串。”
- input type:text输入框点击输入,文字消失
- 关于ORA-04021解决办法(timeout occurred while waiting to lock object)
- SQL 异常处理 Begin try end try begin catch end catch--转
- SharePoint2007安装图文详解二:安装AD(活动目录)及DNS
- 金蝶Apusic应用服务器的数据源管理(转)
- c语言最大公约数和最小公倍数_五年级奥数课堂之七:公因数和公倍数
- mysql 6安装当前密码_MySQL8.0 安装踩坑指南
- 基于linux的netfilter处理数据包的过程分析,基于Netfilter的网络数据包分析