簡體   English   中英

將NodeJS應用程序部署到Openshift

[英]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停止工作?

UPDATE

這是我的mongo配置:

 mongo: {
   module: 'sails-mongo',
   user: 'admin',
   password: '********',
   url: process.env.OPENSHIFT_MONGODB_DB_URL + 'surge'
 }

我是否還需要設置server_port = process.env.OPENSHIFT_NODEJS_PORTserver_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM