Node中怎么實(shí)現(xiàn)自動(dòng)化部署

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Node中怎么實(shí)現(xiàn)自動(dòng)化部署,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁制作,對(duì)iso認(rèn)證等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

配置腳本

這段腳本內(nèi)容是我們需要服務(wù)器自動(dòng)執(zhí)行的

# autoBuild.sh

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

注:這段腳本將會(huì)自動(dòng)在服務(wù)器中執(zhí)行

編寫 js 文件執(zhí)行腳本

由于我使用的是 Github 作為代碼倉庫,所以在這里,我們使用 github-Webhooks-handler 這個(gè)庫來實(shí)現(xiàn)我們的腳本自動(dòng)執(zhí)行工作

按照文檔,我們按照以下方式來編寫 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 選項(xiàng)處配置
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)
})

// 監(jiān)聽 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 ) { // 執(zhí)行 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 中,我們將端口設(shè)置為 3001,在這里代碼就不放出來了,可以在文末的 Github 鏈接里找到本教程的全部示例代碼

Nginx 配置

由于我們的示例代碼是跑在 3001 端口的,執(zhí)行自動(dòng)化部署的 js 文件則跑在 7777 端口,所以我們需要配置一下 Nginx 來啟用這兩個(gè)端口:

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

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

這樣一來,Nginx 就配置完畢了,接下來就是代碼倉庫的 Webhooks 配置

Webhooks 配置

首先,我們進(jìn)入你想實(shí)現(xiàn)自動(dòng)化部署的倉庫,點(diǎn)擊 settings -> Webhooks 來配置

Node中怎么實(shí)現(xiàn)自動(dòng)化部署

在右側(cè),就是配置你的接口地址以及 Secret,對(duì)應(yīng)之前的 js 文件里面的 Secret,選擇 Content type 為 application/json

初始化項(xiàng)目

第一次部署項(xiàng)目,還是需要我們自己手動(dòng)操作的。

首先提交代碼至代碼倉庫(這里是Github),然后進(jìn)入服務(wù)器執(zhí)行 git pull

這樣,我們就成功部署了我們 Node 實(shí)現(xiàn)自動(dòng)部署的代碼了

讓我們修改代碼來試試效果怎么樣

git push 之后轉(zhuǎn)到服務(wù)器內(nèi)一看,完美,成功運(yùn)行

Node中怎么實(shí)現(xiàn)自動(dòng)化部署

再看看 Github

Node中怎么實(shí)現(xiàn)自動(dòng)化部署

上述就是小編為大家分享的Node中怎么實(shí)現(xiàn)自動(dòng)化部署了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前題目:Node中怎么實(shí)現(xiàn)自動(dòng)化部署
標(biāo)題路徑:http://muchs.cn/article44/ippoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)公司、電子商務(wù)、微信小程序、動(dòng)態(tài)網(wǎng)站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)