PM2: Развернуть несколько сред на одном сервере? - PullRequest
0 голосов
/ 27 июня 2018

Я использую PM2 для развертывания / управления процессами, и приложение обрабатывает множество задач DNS, поэтому проще всего запустить приложение разработки с удаленного сервера, а затем выполнить Rsyncing или SFTPing при сохранении (все еще разбираясь с этим) .

В этом случае идея заключается в том, чтобы приложение dev находилось на той же виртуальной машине, что и производственное приложение. Однако структура файла конфигурации развертывания PM2 (ecosystem.config.js), по-видимому, не делает это возможным, поскольку, когда я запускаю pm2 deploy development, версия для разработки обгоняет производственный процесс на виртуальной машине.

Вот что у меня есть:

module.exports = {
  apps: [
    {
      name: "APP NAME",
      script: "app.js",
      env_development: {
        NODE_ENV: "development",
        ...
      },
      env_production: {
        NODE_ENV: "production",
        ...
      }
    }
  ],
  deploy: {
    production: {
      user: "user",
      host: ["123.123.123.123"],
      ref: "origin/master",
      repo: "git@gitlab.com:me/repo.git",
      path: "/var/www/app",
      "post-deploy":
        "npm install && pm2 reload ecosystem.config.js --env production"
    },
    development: {
      user: "user",
      host: ["123.123.123.123"],
      ref: "origin/master",
      repo: "git@gitlab.com:me/repo.git",
      path: "/var/www/app-dev",
      "post-deploy":
        "npm install && pm2 reload ecosystem.config.js --env development"
    }
  }
};

Есть какие-нибудь мысли о том, как лучше всего это сделать?

1 Ответ

0 голосов
/ 02 марта 2019

После ссылки на этот PR я думаю, что вы сможете добавить append_env_to_name: true в качестве свойства к объекту в массиве apps ecosystem.config.js:

Ваш обновленный файл ecosystem.config.js будет выглядеть следующим образом:

module.exports = {
  apps: [
    {
      name: "APP NAME",
      append_env_to_name: true // <===== add this line
      script: "app.js",
      env_development: {
        NODE_ENV: "development",
        ...
      },
      env_production: {
        NODE_ENV: "production",
        ...
      }
    }
  ],
  deploy: {
    production: {
      user: "user",
      host: ["123.123.123.123"],
      ref: "origin/master",
      repo: "git@gitlab.com:me/repo.git",
      path: "/var/www/app",
      "post-deploy":
        "npm install && pm2 reload ecosystem.config.js --env production"
    },
    development: {
      user: "user",
      host: ["123.123.123.123"],
      ref: "origin/master",
      repo: "git@gitlab.com:me/repo.git",
      path: "/var/www/app-dev",
      "post-deploy":
        "npm install && pm2 reload ecosystem.config.js --env development"
    }
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...