iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Node 自动化部署的方法
  • 932
分享到

Node 自动化部署的方法

方法Node 2022-06-04 17:06:33 932人浏览 泡泡鱼
摘要

当我们在更新迭代 node 项目的时候,我们需要做以下几步: git push 将代码提交至代码仓库 在服务器中执行 git pull 拉取最新代码 pm2 start 运行你的代码 这样做

当我们在更新迭代 node 项目的时候,我们需要做以下几步:

git push 将代码提交至代码仓库 在服务器中执行 git pull 拉取最新代码 pm2 start 运行你的代码

这样做固然没错,但是一旦项目更新迭代过快,就需要不断的重复着上面的步骤,在各种 bash 面板中来回切换,很是麻烦。

这时候,WEBhooks 闪亮登场!

对于 Webhooks, GitHub 给出的解释是:

Webhooks allow you to build or set up integrations which subscribe to certain events on GitHub.com.

简单来说,利用 Webhooks,我们就可以实现网站的自动部署,现在就来看看具体该怎么做

配置脚本

这段脚本内容是我们需要服务器自动执行的


# autoBuild.sh

#! /bin/bash
git reset --hard origin/master
git clean -f
git pull
npm start

注:这段脚本将会自动在服务器中执行

编写 js 文件执行脚本

由于我使用的是 Github 作为代码仓库,所以在这里,我们使用 github-Webhooks-handler 这个库来实现我们的脚本自动执行工作

按照文档,我们按照以下方式来编写 js 文件:


// autoBuild.js
var Http = require('http')
var spawn = require('child_process').spawn
var createHandler = require('github-Webhooks-handler')
var handler = createHandler({ path: '/pushCode', secret: '' }) // 在代码仓库的 Webhooks 选项处配置
http.createServer(function (req, res) {
 handler(req, res, function (err) {
  res.statusCode = 404;
  res.end('no such location')
 })
}).listen(7777)

handler.on('error', function (err) {
 console.error('Error:', err.message)
})

// 监听 push 事件
handler.on('push', function (event) {
 console.log('Received a push event for %s to %s',
  event.payload.repository.name,
  event.payload.ref)
 rumCommand('sh', ['./autoBuild.sh'], function( txt ) { // 执行 autoBuild.sh 脚本文件
  console.log(txt)
 })
})

function rumCommand( cmd, args, callback ) {
  var child = spawn( cmd, args )
  var response = ''
  child.stdout.on('data', function( buffer ){ response += buffer.toString(); })
  child.stdout.on('end', function(){ callback( response ) })
}

在 app.js 中,我们将端口设置为 3001,在这里代码就不放出来了,可以在文末的 Github 链接里找到本教程的全部示例代码

Nginx 配置

由于我们的示例代码是跑在 3001 端口的,执行自动化部署的 js 文件则跑在 7777 端口,所以我们需要配置一下 Nginx 来启用这两个端口:


# 启用 7777 端口
server {
  listen 7777;
  listen [::]:7777
  server_name huangxizhou.com; #在这里填上你自己的服务器 ip 地址或者域名
  
  root /var/www/html/auto-build;
}

# 启用 3001 端口
server {
  listen 3001;
  listen [::]:3001
  server_name huangxizhou.com; #在这里填上你自己的服务器 ip 地址或者域名
  
  root /var/www/html/auto-build;
}

这样一来,Nginx 就配置完毕了,接下来就是代码仓库的 Webhooks 配置

Webhooks 配置

首先,我们进入你想实现自动化部署的仓库,点击 settings -> Webhooks 来配置

查看图片

在右侧,就是配置你的接口地址以及 Secret,对应之前的 js 文件里面的 Secret,选择 Content type 为 application/JSON

初始化项目

第一次部署项目,还是需要我们自己手动操作的。

首先提交代码至代码仓库(这里是Github),然后进入服务器执行 git pull

这样,我们就成功部署了我们 Node 实现自动部署的代码了

让我们修改代码来试试效果怎么样

git push 之后转到服务器内一看,完美,成功运行

查看图片

再看看 Github

查看图片

已经自动触发了接口,Node 自动化部署成功

最后

此技术不仅仅局限于 Node

局限性也是有的,只能单项目自动化部署,且必须依赖代码仓库

本项目的源码地址:https://github.com/HuangXiZhou/auto-build

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Node 自动化部署的方法

本文链接: https://www.lsjlt.com/news/12343.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node中怎么实现自动化部署
    这期内容当中小编将会给大家带来有关Node中怎么实现自动化部署,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。配置脚本这段脚本内容是我们需要服务器自动执行的# a...
    99+
    2024-04-02
  • Maven+Tomcat8 实现自动化部署的方法
    本文介绍了Maven+Tomcat8 实现自动化部署的方法,分享给大家,具体如下:1.配置tomcat-users.xml首先在Tomcat里配置deploy的用户(tomcat根目录/conf/tomcat-users.xml):<...
    99+
    2023-05-31
    maven tomcat8 自动部署
  • django自动化部署的方法是什么
    Django可以通过多种方式进行自动化部署,以下是其中一种常用的方法: 使用CI/CD工具(如Jenkins、Travis CI、C...
    99+
    2024-03-01
    django
  • 【ansible 自动化部署方案】
    更新下122(189)的前端?----front_end.yml更新下122(189)的后端?----back_end.yml一键装机。----webenv.yml ssh apache2(源:ubuntu) mysql5.6 ngin...
    99+
    2023-01-31
    方案 ansible
  • Python自动化部署
    # -*- coding: utf-8 -*-#!/bin/env python'''#Auth: karl#Function: released version#Date:2017/6/27#Version:V1.0'''import  ...
    99+
    2023-01-31
    Python
  • Mysql5.6 自动化部署
    主机环境:Centos6.5前提: 配置yum源 移除系统自带的mysql 删除原先的mysql用户 使用mysql二进制安装包:https://dev.mysql.com/downloads/file/id=473278[root@mys...
    99+
    2023-06-06
  • PXE kickstart自动化部署系统安装的方法
    本文小编为大家详细介绍“PXE kickstart自动化部署系统安装的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“PXE kickstart自动化部署系统安装的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-06-29
  • Springboot服务Docker化自动部署的实现方法
    还在手动将springboot项目打包,然后上传服务器,手动执行启动命令将项目启动吗?你out了!通过Docker配置DockerMaven插件,快速部署,一键将springboot...
    99+
    2024-04-02
  • Jenkins自动化部署Vue项目的方法实现
    目录jenkins介绍1. 环境准备2. 首先登录服务器更新系统软件3. 安装Java和git4. 安装nginx5. 安装Jenkins6. 用jenkins创建一个构建任务7. ...
    99+
    2024-04-02
  • Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
    目录环境说明Docker安装Gogs安装Docker中托管.NetCore服务Jenkins安装使用Jenkins自动化总结环境说明 腾讯云轻量服务器, 配置 1c 2g ...
    99+
    2024-04-02
  • Python自动化脚本部署服务器的方法
    本篇内容主要讲解“Python自动化脚本部署服务器的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python自动化脚本部署服务器的方法”吧! 1. 前言日常编写的 Python ...
    99+
    2023-06-15
  • Node中怎么实现一个自动化部署平台
    Node中怎么实现一个自动化部署平台,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。业务需求这个JSSDK,主要作用是在后端了为...
    99+
    2024-04-02
  • App自动化部署:uiautomator2
    快速安装库: pip3 install 库名 -i Simple Index --trusted-host pypi.douban.com 一、appium 与uiautomator2 对比 appium缺点: appium运行慢、时间长...
    99+
    2023-09-05
    自动化 android python
  • 自动部署ssl的方法是什么
    自动部署 SSL(Secure Sockets Layer)的方法包括以下步骤:1. 获取 SSL 证书:通过证书颁发机构(CA)或...
    99+
    2023-09-05
    ssl
  • Gitlab CI-CD自动化部署SpringBoot项目的方法步骤
    目录一、概述二、前期准备三、总体架构图四、环境搭建1、环境准备(可选)2、Gitlab安装3、安装 Runner4、安装应用服务器环境五、创建 SpringBoot 项目1、使用Gi...
    99+
    2024-04-02
  • DevOps自动化组件RUNDECK开发部署使用的方法
    这篇文章主要介绍“DevOps自动化组件RUNDECK开发部署使用的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“DevOps自动化组件RUNDECK开发部署使用的方法”文章能帮助大家解决问题。...
    99+
    2023-06-29
  • Gogs+Jenkins+Docker实现自动化部署.NetCore的方法步骤
    本篇内容主要讲解“Gogs+Jenkins+Docker实现自动化部署.NetCore的方法步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Gogs+Jenkins+Docker实现自动化部署...
    99+
    2023-06-20
  • 详解GitLab自动化部署的流程和基本方法
    GitLab 是目前较为流行的代码托管平台之一,它不仅提供代码存储和版本管理功能,而且还支持自动化部署,方便开发者快速地将代码部署到服务器上进行测试和生产环境发布。本文将介绍 GitLab 自动化部署的流程和基本实现方法。首先,GitLab...
    99+
    2023-10-22
  • Jenkins+Docker+Gitee+SpringBoot自动化部署
    目录1, 搭建Jenkins平台2, Jenkins平台配置3,创建SpringBoot应用4,Gitee配置5, 新建自动化部署任务6,打包测试当我们使用传统的开发方式开发后台系统...
    99+
    2024-04-02
  • 如何安装和配置pm2实现自动化部署node项目
    小编给大家分享一下如何安装和配置pm2实现自动化部署node项目,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、pm2简介pm2(process manager)是一个进程管理工具,维护...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作