Как я могу развернуть только одно указанное c nodeJS приложение в одной указанной c среде с PM2? - PullRequest
0 голосов
/ 25 марта 2020

У меня два приложения nodejs, развернутых в Digital Ocean, с PM2, которые я изучаю. Я хотел бы знать, как я мог бы обновлять свои приложения (сервисы) отдельно.

На данный момент моя конфигурация pm2 выглядит следующим образом:

// ecosystem.config.js
module.exports = {
  apps: [
    {
      name: `app1`,
      script: './app1.js',
      // ...
    },
    {
      name: `app2`,
      script: './app2.js',
      // ...
    }
  ],

  deploy: {
    production: {
      key: '',
      user: 'admin',
      host: '',
      ref: '',
      repo: '',
      path: '/home/admin/app/prod',
      'post-deploy': './deploy.sh production'
    },
    development: {
      key: '',
      user: 'admin',
      host: '',
      ref: '',
      repo: '',
      path: '/home/admin/app/development',
      'post-deploy': './deploy.sh development'
    },
  }
}

Я могу развернуть для каждой среды, например pm2 deploy production.
Но можно ли сделать что-то вроде pm2 deploy development app2 только для обновления app2?

1 Ответ

1 голос
/ 25 марта 2020

У вас есть много способов сделать это, для меня я всегда создаю файл экосистемы в папке клиента и папке сервера, затем создаю файл Publi sh экосистемы в папке root, например:

  • клиент
    • ecosystem.config. js
  • сервер
    • ecosystem.config. js
  • ecosystem.config. js

Файл экосистемы root, например:

  deploy: {
    frontend: {
      ...other,
      path: '/app/easyv_spaceship',
      'post-deploy': 'cd ./client && npm install && npm run build'
    },
    backend: {
      ...other,
      path: '/app/easyv_spaceship',
      'post-deploy': 'cd ./server && npm install && npm run tsc && pm2 startOrRestart ecosystem.config.js --env production'
    }
  }

, надеюсь, это может вас вдохновить.

...