尝试使用3个实例为MEAN应用启动pm2-runtime

时间:2018-12-21 07:45:14

标签: node.js docker docker-compose pm2 docker-command

我正在尝试通过使用以下Docker命令在Docker容器中启动现有的MEAN堆栈应用程序:

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

该命令确实启动了3个PM2实例,但是npm部分似乎没有运行run-script部分,并且在每个实例中均挂有以下消息:

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” 部分,它将以“ fork”模式正确启动该应用程序的1个实例。

考虑到NPM与运行脚本一起使用,是否有人知道启动3个实例的正确语法是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

--是特定于bash的功能,表示命令行选项的结尾。

但是,您没有运行bash,而是调用了pm2-runtime二进制并将参数传递给它。

因此,它本质上等效于以--作为命令调用npm。

我认为--可以删除并且应该可以使用。