用express搭建了一个小程序的后台,想要部署到服务器上,每次都要手动部署,点来点去耗时,就想能不能省去这些重复性的操作

之前搭建hexo博客时用到了gitHooks实现了自动部署,就想,后台部署应该也可以采用这种方式实现自动部署


后台 express
工具 git pm2
服务器 Ubuntu 18.04.1 LTS

在本地先搭建好express以及git

这里用的文档的express-cli快速搭建

在服务器中下载好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

内容如下:

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

将项目和远程代码库连接

在本地生成密钥对

在本地生成ssh密钥对,并把公钥传到服务器/root/.ssh/authorized_keys文件中(没有则新建一个)

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

生成的公钥在用户目录的.ssh中

生成本地代码库

进入本地项目中

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命令来实现自动部署了


Ezio
35 声望2 粉丝