PM2實現Nodejs項目自動部署
首先簡單說下思路:本地git倉庫與遠程倉庫關聯(github、碼云等平臺),然后pm2按照指定配置登錄服務器,拉取遠程倉庫的代碼更新,再執行一些指定的命令(如打包等)。
創建本地項目并關聯到遠程倉庫
本地新建名為web的項目,進入項目并創建一個簡單的Nodejs文件app.js,
mkdir web && cd webvi app.js
文件內容編輯如下,完成后保存退出:wq!。
// app.sconst http = require('http');const homePage = `<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style type="text/css"> * { padding: 0; margin: 0; } body { padding: 30px 0; text-align: center; font-size: 16px; background-color: #333; } h1,h2 { color: #fff; } nav { margin-top: 20px; } a { color: #ccc; cursor: pointer; } a:hover { text-decoration: underline; } </style></head><body> <h1>Nodejs部署示例項目</h1> <h2>項目部署上線示例</h2> <nav> <ul> <li><a>列表</a></li> </ul> </nav></body></html>`http.createServer((req,res) => { res.statusCode = 200; res.setHeader('Content-Type','text/html'); res.end(homePage);}).listen(3000, () => { console.log('Sever Running On 3000:');})把本地項目放到遠程倉庫,可選Github或者碼云等平臺。首先查看本地是否生成過.ssh目錄及目錄下是否有私鑰及公鑰文件
ls ~/.ssh
如果存在,跳到下一步。如果不存在id_rsa、id_rsa.pub文件,需要先生成一下:
"youemail"填寫你的郵箱
ssh-keygen -t rsa -C "youremail"
查看本地公鑰的內容并復制內容添加到遠程倉庫
cat ~/.ssh/id_rsa.pub
本地倉庫關聯遠程倉庫的其他操作這里就不贅述。
服務器從遠程倉庫拉取項目
服務器環境:阿里云的ecs,系統是Ubuntu 14.06
這一步后面是不需要手動操作的,但我們要做好配置,這里可以先手動拉取遠程代碼測試一下是否配置成功。
確保服務器已安裝NodeJs、git、pm2,未安裝的話自行百度。
復制服務器的公鑰并添加到遠程倉庫,操作步驟同本地的2、3、4步。
定位到用戶目錄,拉取遠程倉庫確保可以拉取成功,若成功的話這個項目目錄刪除即可。
xxxx為你遠程倉庫的項目地址
新聞熱點
疑難解答
圖片精選