Попытка запустить 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"]