Попытка запустить pm2-runtime с 3 экземплярами для MEAN-приложения

Я пытаюсь запустить существующее приложение стека MEAN в контейнере Docker с помощью следующей команды Docker:

CMD ["pm2-runtime", "-i", "3", "npm", "--", "run-script", "start:prod"]

Эта команда запускает 3 экземпляра PM2, однако кажется, что часть npm не выполняет часть сценария выполнения, и в каждом экземпляре она зависает со следующим сообщением:

Usage: npm <command>
where <command> is one of:
    access, adduser, bin, bugs, c, cache, completion, config,
    ddp, dedupe, deprecate, dist-tag, docs, edit, explore, get,
    help, help-search, i, init, install, install-test, it, link,
    list, ln, login, logout, ls, outdated, owner, pack, ping,
    prefix, prune, publish, rb, rebuild, repo, restart, root,
    run, run-script, s, se, search, set, shrinkwrap, star,
    stars, start, stop, t, tag, team, test, tst, un, uninstall,

Если я удаляю часть "-i", "3", он корректно запускает 1 экземпляр приложения в режиме "ветвления".

Кто-нибудь знает, какой будет правильный синтаксис для запуска 3-х экземпляров, учитывая его использование NPM с run-script?

Спасибо

2 ответа

-- это bash-специальная функция, которая обозначает конец параметров командной строки.

Вы однако не бежите bash, но зовет pm2-runtime двоичный файл и передача ему аргументов.

Таким образом, это по сути эквивалентно вызову npm с -- как команда.

я думаю что -- может быть удален, и это должно работать.

Добавлять "start"в строку CMD

      CMD ["pm2-runtime", "start", "-i", "3", "npm", "--", "run-script", "start:prod"]
Другие вопросы по тегам