版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xutongbao/article/details/88969577
安装node:
tar -xvf node-v6.10.0-linux-x64.tar.xz
mv node-v6.10.0-linux-x64 nodejs
ln -s /app/software/nodejs/bin/npm /usr/local/bin/
ln -s /app/software/nodejs/bin/node /usr/local/bin/
通过npm安装yarn:
npm install yarn -g
ln -s /home/software/nodejs/bin/yarn
安装pm2:
yarn insall pm2 global
ln -s /home/software/nodejs/bin/pm2
安装git:
yum install git
生成ssh:
ssh-keygen -t rsa -C "[email protected]"
按照提示完成三次回车,即可生成 ssh key
cat ~/.ssh/id_rsa.pub
文件内容,获取到你的 public key
把生成的public key复制到gitlab里(设置-> ssh密钥 -> Add key)
linux免密:
scp -p ~/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
第一次自动部署,不需要在服务器上建文件夹,直接运行:
pm2 deploy ecosystem.json production setup
以后自动部署:
yarn deploy
ecosystem.json文件内容:
扫描二维码关注公众号,回复:
5824864 查看本文章
{
"apps": [
{
"name": "website",
"script": "./server.js",
"env_production": {
"NODE_ENV": "production",
"HOST": "127.0.0.1"
}
}
],
"deploy": {
"production": {
"user": "root",
"host": ['10.10.10.136'],
"ref": "origin/develop",
"repo": "[email protected]:starbaby0414/website-2019.git",
"path": "/home/website-2019",
"post-deploy": "yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g && yarn install && yarn build && pm2 startOrRestart ecosystem.json --env production",
"env": {
"NODE_ENV": "production"
}
}
}
}
package.json:
{
"name": "2019",
"author": "ace",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"dev": "node server.js",
"build": "next build",
"start": "NODE_ENV=production node server.js",
"export": "yarn build && next export",
"deploy": "pm2 deploy ecosystem.json production"
},
"dependencies": {
"@zeit/next-sass": "^1.0.1",
"axios": "^0.18.0",
"classnames": "^2.2.6",
"css-animation": "^1.5.0",
"express": "^4.16.4",
"file-loader": "^3.0.1",
"lru-cache": "^5.1.1",
"next": "^8.0.0",
"next-redux-wrapper": "^3.0.0-alpha.1",
"node-sass": "^4.11.0",
"path-to-regexp": "^3.0.0",
"pm2": "^3.4.0",
"quill-delta-to-html": "^0.10.7",
"raf": "^3.4.1",
"rc-animate": "^2.6.0",
"react": "^16.8.1",
"react-dom": "^16.8.1",
"react-intl": "^2.8.0",
"react-intl-context": "^1.0.3",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-logger": "^3.0.6",
"sweetalert2": "^8.7.0",
"swiper": "^4.4.6",
"three": "^0.102.1",
"url-loader": "^1.1.2"
}
}