node.js - 尝试使用 MEAN 应用程序的 3 个实例启动 pm2-runtime
问题描述
我正在尝试使用以下 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 个实例的正确语法是什么?
谢谢
解决方案
--
是一个bash
特定的特性,表示命令行选项的结束。
但是,您不是在运行bash
,而是调用pm2-runtime
二进制文件并将参数传递给它。
因此,它本质上等同于使用--
命令调用 npm。
我认为--
可以删除它,它应该可以工作。
推荐阅读
- swift - UIPickerView 选择输入 Swift 4 或 5
- python - Keras:使用 model.train_on_batch() 和 model.fit() 获得不同的准确度。可能是什么原因以及如何解决?
- java - 包括来自不同于根目录的 .pde 文件
- highcharts - Highcharts:水平条形图中条形上方的 xAxis 标签
- javascript - 为 .ajaxError() 中重新发送的 Ajax 请求执行 .done() 函数
- r - 将 Web 服务中的折线添加到 R 传单地图
- python - 将字典写入 Sql 表,代码执行没有任何问题,但值没有绑定到 SQL 表中
- elasticsearch - 衰减函数内的术语过滤器
- reactjs - 如何在加载时打开 React Native Maps 标记的标注
- java - NoSuchAlgorithmException[1.2.840.113549.1.1.1 KeyFactory 不可用];