Tag: openshift cartridge

如何在OpenShift上从nodejs盒式磁带访问mongodbvariables?

我正在尝试将应用程序原型部署到openshift。 它可以在127.0.0.1的地方使用mongodb。 我试图让它在openshift环境中尊重process.env.OPENSHIFT_MONGODB_DB_URL ,但是在运行时我的nodejs盒式磁带无法访问该variables。 我可以看到它正在我的应用程序的shell环境中设置。 当我做rhc ssh然后export我看到OPENSHIFT_MONGODB_DB_URL=[full_url_with_password] ,它看起来不错。 但是,当我在node.js应用程序中调用process.env.OPENSHIFT_MONGODB_DB_URL它返回undefined 。 为了仔细检查,我在node.js应用程序中执行了一个console.log(util.inspect(process.env)) ,而我所看到的与我在appication的安全shell中看到的不同。 没有OPENSHIFT_MONGODB_ *variables是暴露给我的node.js应用程序的环境中。 如何访问不同墨盒的variables? 或者这是一个configuration错误?

NodeJS应用程序部署后不能在Openshift上工作

我在使用nodejs应用程序部署时遇到了麻烦。 我使用Express,MySQL和我的应用程序的基本Express结构。 当我在openshift上打开应用程序URL时,我得到了503错误信息。 在nodejs.log上,我可以看到这个: Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. Pipe 8080 is already in use 该应用程序使用./bin/www运行。 这是我在该文件中的代码: #!/usr/bin/env node /** * Module dependencies. */ var app = require('../app'); var debug = require('debug')('adressbook:server'); var http = require('http'); /** […]

如何将OpenShift Online 3平台更新到最新版本的Node.js?

在OpenShift Online 2的时代,有能力将Node.js更新到最新版本。 据我所知,这种方法不再适用于新的OpenShift Online 3版本。 目前,OpenShift只提供过时或LTS版本的Node.js,egv4或v.6。 我的问题: 如何将OpenShift Online 3平台更新到最新版本的Node.js?

如何在OpenShift中产生多个nodejs进程

在OpenShift环境中,我如何运行两个NodeJS进程(来自nodejs官方盒式磁带),每个都有自己的启动文件? 基本我想制作一个Web应用程序,有时候会把工作放在一个队列中。 我认为我应该有两个过程:一个处理Web请求,一个处理作业处理。 原因是我认为在一个单独的过程中处理这个工作是因为如果有很多工作,我认为它可能会阻止前端部分。 这些是我迄今为止的解决scheme (但我真的不知道他们是否好) 从动作钩子产生第二个进程(启动并重新启动)。 我担心,如果工作进程死亡,它不会自动重新启动 从主进程调用fork或spawn等。与上面一样担心 根本不使用两个进程,只使用一个进程 其他细节 : 一个工作主要是IO:对Google API的几个HTTP请求(每个作业5-10个请求),以及对MongoDB的2个简单请求 起初在队列中不会有很多工作,但是将来可能会有很多工作 我打算使用kue来提供特征和UIfunction 所有这些东西都会保存在一台服务器上(可能发生扩展,但不太可能发生)

在socket.io脚本中出现奇怪exceptionETIMEDOUT的Openshift redis盒式磁带

我有一个运行的socket.io节点脚本作为聊天服务器。 我有它在本地服务器上运行好,并从此尝试将其移到openshift。 我用下面的墨盒来使它工作 – https://github.com/smarterclayton/openshift-redis-cart/issues 在运行本地版本的服务器时,在连接到openshift的redis时,我在运行脚本后127秒内出现奇怪的超时。 events.js:72 throw er; // Unhandled 'error' event ^ Error: Redis connection to <server> failed – connect ETIMEDOUT at RedisClient.on_error (/path/node_modules/redis/index.js:196:24) at Socket.<anonymous> (/path/node_modules/redis/index.js:106:14) at Socket.emit (events.js:95:17) at net.js:441:14 at process._tickCallback (node.js:442:13) 我曾经看过一个events.js:72,但通常当我尝试运行一个已经在该端口上运行的节点脚本时。 很确定的脚本本身是好的,因为当我换出我的本地的Redis服务器,它会坐在那里几天,并正常工作。 所以我的问题是:为什么我的socket.io脚本在redis在openshift上托pipe的127秒之后自行终止?

无法将Node应用程序部署到Openshift

我试图部署一个简单的ExpressJS应用程序,我必须使用命令行工具的Openshift 。 我在下面提供了一个debugging跟踪: >npm info ok Preparing build for deployment Deployment id is 5e2abc99 Activating deployment HAProxy already running HAProxy instance is started Starting NodeJS cartridge Sat Aug 15 2015 15:17:47 GMT-0400 (EDT): Starting application 'xxxxx' … Waiting for application port (8080) become available … Application 'xxxxx' failed to start (port 8080 not available) 和 […]

什么是在OpenShift v2 push hook的最后一秒重置PATHvariables?

TL; DR:工作应用程序,克隆它,克隆不能从push hook正确启动(但是如果我在ssh中手动工作的很好) PATH有正确的Node版本添加到它,但是在最后一步正确的地方,版本再次被添加到PATH 。 path在这里是正确的: remote: PATH = /var/lib/openshift/…/app-root/data//node-v4.xx-linux-x64/bin:/var/lib/openshift/…/app-root/runtime/repo/node_modules/.bin:/var/lib/openshift/…//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin:/bin:/usr/bin:/usr/sbin 然后不正确之后 ,在这里的某个地方: remote: Starting NodeJS cartridge remote: Tue Aug 22 2017 15:39:10 GMT-0400 (EDT): Starting application 'staging' … 那么在最后两行中或之前代表什么脚本和钩子呢? PATH不只是添加线条本身… 我有一个工作的OpenShift v2应用程序运行一个新的NodeJS版本, 足以支持胖箭头符号 。 看来它是在Openshift的每个自定义node.js版本上设置的,因为这个回购(用于使用标记文件)的脚本存在于.openshift 。 我使用rhc create –from-appbuild立了第二个基于工作rhc create –from-app ,重置回购,然后重新部署到它。 第二个工作很好,除了开始node的最后一步: remote: npm info ok remote: NOTE: The .openshift/action_hooks/build hook is not executable, […]