githooks實現項目自動部署

用express搭建了一個小程序的後臺,想要部署到服務器上,每次都要手動部署,點來點去耗時,就想能不能省去這些重複性的操做html

以前搭建hexo博客時用到了gitHooks實現了自動部署,就想,後臺部署應該也能夠採用這種方式實現自動部署node


後臺 express
工具 git pm2
服務器 Ubuntu 18.04.1 LTS

在本地先搭建好express以及git

這裏用的文檔的express-cli快速搭建linux

在服務器中下載好node,git,pm2

node下載

cd /opt/
wget https://npm.taobao.org/mirrors/node/v12.13.1/node-v12.13.1-linux-x64.tar.xz
tar -xf node-v12.13.1-linux-x64.tar.xz

git 下載

sudo apt install git

pm2 下載

npm install -g pm2

在服務器中新建空倉庫

cd /var/www/html
mkdir express && cd express

git init --bare .git

配置githooks

cd .git/hooks/
vim post-receive

內容以下:git

#!/bin/bash
git --work-tree=/var/www/html/express --git-dir=/var/www/html/express/.git checkout -f

將項目和遠程代碼庫鏈接

在本地生成密鑰對

在本地生成ssh密鑰對,並把公鑰傳到服務器/root/.ssh/authorized_keys文件中(沒有則新建一個)express

ssh-keygen -t rsa -C "xxxx@xxx.com"

生成的公鑰在用戶目錄的.ssh中

生成本地代碼庫

進入本地項目中npm

git init 
git remote add deploy <遠程服務器用戶名>@<遠程服務器地址>:/var/www/html/express/.git
git add .
git commit -m 'up'
git push deploy master

在服務器中用pm2管理項目

cd /var/www/html/express
npm install
pm2 start ./bin/www --watch

如今每次均可以在本地用git push deploy master命令來實現自動部署了小程序

相關文章
相關標籤/搜索