【发布时间】:2016-06-02 20:27:45
【问题描述】:
我有一个正在运行的 SailsJS 应用程序,我想将它部署到 Openshift,但和往常一样,它并不顺利。 这是我到目前为止所做的:
rhc app create myApp nodejs-0.10
rhc cartridge add mongodb-2.4
在这两个之后,我可以看到应用程序已创建,当我访问给定的 URL 时,我得到了欢迎页面。
我安装了RockMongo,发现我的mongodb也可以访问了。
由于我已经有代码,我继续以下操作:
git remote add openshift -f <openshift-git-repo-url>
git merge openshift/master -s recursive -X ours
git push openshift HEAD
在我将现有代码与远程 openshift 合并后(如上面的命令),事情开始出错。
当我访问应用程序的 url 时,我收到 503 服务暂时不可用。如果我访问 RockMongo 并尝试使用给定的凭据登录,我会收到
Unable to connect MongoDB, please check your configurations.
MongoDB said:Failed to connect to: 127.10.37.130:27017: Transport endpoint is not connected.
此外,在“应用程序面板”中,我的应用程序状态正在构建(并且会保持这种状态数小时)。将代码推送到 openshift 后,应用程序停止了,并且在(自动)重建它之后,我收到了一些错误,最后一个是
remote: An error occurred executing 'gear postreceive' (exit code: 34)
remote: Error message: CLIENT_ERROR: Failed to execute: 'control build' for /var/lib/openshift/538f1c205004461655000227/nodejs
有人知道发生了什么吗?
也许我没有正确设置端口、应用程序 url、数据库 url?但是话说回来,为什么 RockMongo 停止工作了?
更新
这是我的 mongo 配置:
mongo: {
module: 'sails-mongo',
user: 'admin',
password: '********',
url: process.env.OPENSHIFT_MONGODB_DB_URL + 'surge'
}
我还需要设置server_port = process.env.OPENSHIFT_NODEJS_PORT 和server_ip_address = process.env.OPENSHIFT_NODEJS_IP 吗?
我的应用程序的根目录中有一些 server.js 文件,我看到这里使用了这些变量。
如果我运行env | grep NODEJS,这就是我得到的结果
OPENSHIFT_NODEJS_PATH_ELEMENT=/var/lib/openshift/538f1c205004461655000227//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin
OPENSHIFT_NODEJS_PORT=8080
OPENSHIFT_NODEJS_LD_LIBRARY_PATH_ELEMENT=/opt/rh/nodejs010/root/usr/lib64
OPENSHIFT_NODEJS_IDENT=redhat:nodejs:0.10:0.0.17
OPENSHIFT_NODEJS_LOG_DIR=/var/lib/openshift/538f1c205004461655000227/app-root/logs/
OPENSHIFT_NODEJS_IP=127.10.37.129
OPENSHIFT_NODEJS_PID_DIR=/var/lib/openshift/538f1c205004461655000227/nodejs//run/
OPENSHIFT_NODEJS_VERSION=0.10
OPENSHIFT_NODEJS_DIR=/var/lib/openshift/538f1c205004461655000227/nodejs/
这就是我得到的env | grep mongo:
OPENSHIFT_ROCKMONGO_DIR=/var/lib/openshift/538f1c205004461655000227/rockmongo/
PHPRC=/var/lib/openshift/538f1c205004461655000227/rockmongo/etc/conf/php.ini
OPENSHIFT_ROCKMONGO_IDENT=redhat:rockmongo:1.1:0.0.12
OPENSHIFT_MONGODB_IDENT=redhat:mongodb:2.4:0.2.11
OPENSHIFT_MONGODB_DB_URL=mongodb://admin:PASSWORD_HERE@127.10.37.130:27017/
OPENSHIFT_MONGODB_DIR=/var/lib/openshift/538f1c205004461655000227/mongodb/
【问题讨论】:
-
尝试向我们提供一些代码?就像您的 MongoDB 连接字符串一样(删除用户名/密码)。您也可能尝试绑定到不允许的 0.0.0.0 或 localhost。
-
嗨,我刚刚更新了我的答案。我也觉得我错过了一些配置,但不知道是什么问题:/
-
是的,您需要设置要绑定的 ip 和端口,这可能是您的应用程序无法启动的原因。还可以使用 rhc tail 检查您的日志文件。
标签: node.js openshift sails.js