如何使用pm2一鍵部署node應用

準備工做

  1. 準備一臺linux服務器(本文檔以阿里centos爲例)
  2. 安裝nodejs、git、pm2等環境
  3. 項目代碼
  4. 本地已經安裝用於鏈接 Linux 實例的工具,如 Xshell

基本流程

前兩步傳送門,在基本環境搭建好之後咱們還要作一些其餘的簡單而重要的事情vue

  1. 配置key 使本地和服務器具有讀寫遠程倉庫的能力

這裏咱們存放的是項目代碼的倉庫以github爲例,可是倉庫須要加密,防止其餘人篡改你的代碼,可是加密的密鑰從哪來呢,傳送門,這裏有各個系統生成密鑰的方法,按照步驟執行便可。node

而後登陸你的github後訪問 https://github.com/settings/keyslinux


把上面生產的key填寫在其中就能夠了,title能夠隨意填寫,我通常填寫爲key的宿主便於後期維護。git

注意:咱們要分別在本地和服務器上生成key添加到倉庫中。若是你已經具有項目倉庫,這隻需執行服務器上的步驟。github

  1. 將本地的項目同步到倉庫
  2. 在服務器clone項目看服務器是否具備拉取項目的權限。
  3. 在本地和服務器下載並安裝pm2,儘可能保持二者的版本一致。
  4. 項目中加入pm2的配置文件deploy.yml
apps:
  - script   : server.js  // 發佈時須要執行的腳本
    name : 'vue-admin'  // 項目名
    watch  : true       //是否監控
    env    :            //環境變量
      NODE_ENV: development
    env_production:
      NODE_ENV: production
deploy :
  production :      //生產環境發佈
    user : root     //主機用戶名(centos的登陸用戶名)
    key : C:/key/SSH-ubuntu.pem //主機密鑰文件
    host : 
      - 120.78.174.212   //主機ip
    port : 22           // 端口
    ref : origin/master     //倉庫分支
    repo : git@github.com:artiely/vue-admin.git //倉庫地址
    path : /www/ant-design-pro/production   //服務器項目的部署地址(確保文件夾存在)
    ssh_options : StrictHostKeyChecking=no  // 是否檢查密鑰
    pre-deploy : git fetch --all    //發佈前的鉤子,拉取項目
    post-deploy : 'npm install --ignore-scripts && pm2 startOrRestart deploy.yml --env production'// 發佈時的鉤子,先安裝依賴再啓動pm2以生產環境
    env : 
      NODE_ENV : production
  1. 第一次發佈production需先setup
pm2 deploy deploy.yml production setup
  1. 發佈
pm2 deploy deploy.yml production

每次項目更新後只要同步到倉庫後均可以再次執行pm2 deploy deploy.yml production以實時預覽更新的內容。
固然還能夠經過npm script或github webhook使事情變得更簡單,再聊咯。web

實例地址: https://github.com/artiely/vue-adminshell

完.npm

相關文章
相關標籤/搜索