在Openshift中,如何在主服务器.js启动之前预启动脚本?

在Openshift中,如何在主服务器.js启动之前预启动脚本?,openshift,Openshift,我想启动crawler.js,在server.js启动之前从Internet获取一些页面。我已尝试将package.json更改为“scripts”:prestart:crawler.js。但它似乎不起作用。有人知道原因吗?只有通过npm start命令启动节点应用程序,才能使用package.json中描述的启动前脚本。有关此的详细信息: 如果您使用本地机器,这是一种完美的方式,但OpenShift的工作方式不同。它用于运行您的节点应用程序。默认情况下,此主管从$OPENSHIFT\u REP

我想启动crawler.js,在server.js启动之前从Internet获取一些页面。我已尝试将package.json更改为“scripts”:prestart:crawler.js。但它似乎不起作用。有人知道原因吗?

只有通过
npm start
命令启动节点应用程序,才能使用
package.json中描述的启动前脚本。有关此的详细信息:

如果您使用本地机器,这是一种完美的方式,但OpenShift的工作方式不同。它用于运行您的节点应用程序。默认情况下,此主管从$OPENSHIFT\u REPO\u目录运行
node server.js
,以启动节点应用程序。你不能改变这种行为

Openshift允许您为此类作业定义操作挂钩。您必须编写脚本(用shell、python或ruby等编写)并将它们放在
/.openshift/action\u hooks
中。这些脚本由OpenShift在不同的时间执行,如盒带启动、停止、重新启动或在默认构建生命周期期间。仔细阅读,了解它们是如何工作的,并在应用程序中使用它们


还有一个示例操作钩子,用于检查MongoDB数据库中是否有数据,如果没有,则从git存储库为应用程序导入数据。

请注意,操作钩子仅与OpenShift 2相关。如果他们使用OpenShift 3,则默认节点S2I生成器不提供动作挂钩。