Определите путь к сценарию PM2 с помощью переменной среды

Я создаю простую промежуточную CI-среду, в которой я определяю путь запуска приложения Node с помощью переменной окружения APP_PATH.

Можно ли указать PM2 в файле конфигурации процесса для поиска сценария запуска, следуя пути в переменной APP_PATH?

Как это:

{
  "apps": [
    {
      "name": "my_app",
      "script": "$APP_PATH/app.js"
    }
  ]
}

В настоящее время я получаю [PM2][ERROR] script not found : сообщение от PM2 при запуске вышеуказанной конфигурации.

В двух словах: PM2 не разрешает env var, определенный в script имущество. Есть ли способ преодолеть это?

1 ответ

Если вам нужно сделать в том же подходе. Следить за этим.

Создайте файл.json вне вашего корневого каталога или там, где вам это нужно.

servers.json

[{
  "name":"MyApp",
  "script":"/home/user/app/server.js",
  "instances":"3" //number of instances to start
},
{
  "name":"MySecondApp",
  "script":"/home/user/app2/server.js",
  "instances":"max" //to calculate your number of CPU cores available and run based on the core count
}]

Тогда бегите используя pm2 start servers.json

Это запустит два приложения с указанным именем и экземплярами.

Или же

С последней версией PM2 вам не нужно писать никаких скриптов. Просто выполните несколько команд, чтобы сделать то же самое.

Шаг 1: Сначала вы создаете свои экземпляры pm2 так, как вам нужно, как сейчас, сколько экземпляров вам нужно запустить или сколько разных серверов вам нужно запустить.

Шахта ниже введите описание изображения здесь

Как только ваши приложения запускаются и отображаются в списке, как это.

Шаг 2: введите pm2 startup, Затем вы увидите автоматически сгенерированную команду pm2, которая поможет вам создать ее как сервис.

введите описание изображения здесь

Шаг 3: Вы увидите команду, которую вам нужно выполнить, в сером оттенке. Скопируйте его и запустите как пользователь root.

как только вы запустите эту команду, вы увидите результат, как показано ниже.

введите описание изображения здесь

Шаг 4: Бег pm2 save поэтому текущий список процессов pm2 будет сохранен для запуска скрипта.

Это оно..

Протестируйте его, перезагрузив сервер и проверив pm2 ls или же pm2 status,

Если вы хотите обновить список процессов pm2 снова, используйте pm2 update это возьмет текущий список процессов и обновит сценарий запуска.

Надеюсь это поможет!!!

Другие вопросы по тегам