# webhook **Repository Path**: gaogao520/webhook ## Basic Information - **Project Name**: webhook - **Description**: 前端项目使用shell+docker实现简单的自动CICD - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-31 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前端项目使用shell+docker实现简单的自动CICD ## 背景 > 代码是托管在[gitee码云](https://gitee.com/)上[私有],没有自建git仓库,其实gitlab和jenkins都可以实现持续[CICD](https://www.digiproto.com/news/255.html), > 不想给我那小霸王服务器太大的压力以及年底到期想换其他的供应商,为了迁移方便。 ## 起初是不想自己写 > 在gitee码云上检索看有小伙伴有没有做过类似的想着改改就能用的那种于是....[原项目地址:https://gitee.com/javanx/webhook](https://gitee.com/javanx/webhook)在原项目基础上新增了docker,在docker中拉取代码、编译,避免服务端环境污染。 ![](./gitee-webhooks.jpeg) ## 快速开始 ```bash # 拉取代码到服务器 git clone https://gitee.com/gaogao520/webhook.git # cd webhook cd webhook # 安装依赖 $ npm install # pm2启动服务 $ pm2 start webhook.js --name webhook -e ./logs/error.log -o ./logs/out.log ``` 当然,还需要你根据自己的项目对响应配置做出修改,详情看下方细节描述 ## Gitee添加WebHooks 进入到项目->管理->WebHooks->添加 输入服务器中配置好的地址密码,默认代码里面是123456 ![](./gitee-webhook-config.73586228.png) 添加后,点击测试,可以看到ok,WebHooks配置完成。 ![](./gitee-webhook-config-test.72f3fac8.png) 这时候你push代码到gitee,服务器会自动同步你gitee的代码,完成部署 ## Gitee - WebHooks 为了能够处理`Gitee`的`WebHooks`` Push`钩子,我们需要在服务器上配置启动相应的`WebHooks Handler`,用来处理`Post`请求。 简单来说就是在服务器启动一个Http服务,提供Post请求接口,Gitee会在代码被push更新之后给服务器上的这个接口发送`Post`请求,而这个接口的作用就是触发自动化部署的脚本。 具体的流程大概如下: - 首先,本地的`vue`项目代码更新之后(理论任何项目),通过`git`推送到`Gitee`仓库中。 - 然后,`Gitee`触发`WebHooks`,即触发相应的钩子,并向服务器发送POST请求。 - 最后,服务器接收到`Gitee`发送过来的请求后,触发自动化部署脚本,脚本执行dockerfile开始构建dokcer镜像,在镜像中进行拉取代码、重新打包、进行部署。 - ⚠️:如果重复执行脚本,脚本会先检测容器是否已经存在,如果存在则先停止容器,再删除容器,重新构建镜像,启动容器。 当前,`Gitee`支持的5种类型的钩子,如下: 1、`Push`: 仓库推送代码、推送 / 删除分支 2、`Tag Push`: 新建 / 删除 tag 3、`Issue`: 新建任务、变更任务状态、更改任务指派人 4、`Pull Request`: 新建、更新pr代码、合并 `Pull Request` 5、评论: 评论仓库、任务、`Pull Request`、`Commit` 因为是写的文档类的东西,只需push后能够自动化CICD即可,我这边的话就只选择了`Push`钩子。 # 需要改动的地方 dockerfile git地址 ## 细节描述以及文档更新 > http://love.yangzhimao.cn/linux/shell/webhook.html 【就是这个文档站】 ## 相关文章 如果您对pm2、git等不熟悉,可以点击下方文章 [Node应用的进程管理器: PM2详细介绍](https://www.javanx.cn/20190520/node-pm2/) [git详细教程学习](https://www.javanx.cn/tag/git/)