[英]Deploying NodeJS application to Openshift
我有一個工作中的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合並后(如上述命令),事情開始出錯。
當我訪問應用程序的網址時,我收到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
這就是我得到的env | grep NODEJS
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
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/
萬一其他人偶然發現了這個問題,這就是我必須要做的。
我創建了單獨的文件config / application.js,並將其放置在其中
module.exports = {
port: process.env.OPENSHIFT_NODEJS_PORT,
host: process.env.OPENSHIFT_NODEJS_IP,
environment: 'production'
};
我也發現應用程序無法啟動是什么問題。 安裝后失敗(增強安裝未成功完成)。 要修復它,應該在package.json的腳本部分添加
"postinstall": "export HOME=/var/lib/openshift/[instance-id]/app-root/runtime/repo; ./node_modules/bower/bin/bower install"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.