linux + node + yarn + git + ssh + linux免密登录 + pm2自动部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 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"
  }
}

猜你喜欢

转载自blog.csdn.net/xutongbao/article/details/88969577