2014-05-20 82 views
2

我正在使用Wercker Continuous Integration & Delivery Platform在Node.js OpenShift服務器上測試和部署BitBucket存儲庫。 Wercker加載到BitBucket存儲庫中,構建它,並在node.js環境中對其進行測試,並在沒有任何問題的情況下通過它。它也用jsHint檢查代碼,並返回沒有任何錯誤。在OpenShift node.js服務器上部署存儲庫

Wercker還表示部署通過沒有錯誤,就像OpenShift一樣。問題是,當我檢查通過OpenShift提供給我的應用程序URL,它與服務器錯誤的結果:

503 Service Temporarily Unavailable 

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 

在解決此,我重新啓動服務器(我運行的基本帳戶,我有該選項),但似乎並未解決問題。 Wercker或Openshift都沒有表明存在問題,但由於某種原因,我無法無誤地訪問該域。

我該如何解決這個問題(最基本的層)?

回答

3

這是解決方案:

我安裝了OpenShift網站上提供的RHC客戶端工具,檢查應用程序日誌,發現OpenShift是無法找到一個server.js文件在根目錄中。所以我將我的app.js文件重命名爲server.js,並在我的package.json中將「start」值更改爲server.js。然後,我將server.js文件中的代碼配置到OpenShift環境變量中,並且做到了!

的server.js現規定:

var http = require('http'); 
var ip = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1', 
    port = process.env.OPENSHIFT_NODEJS_PORT || '8080'; 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(port, ip); 
console.log('Server running at http://'+ip+':'+port+'/'); 

我現在可以連接到應用程序URL和獲得基本的「Hello World」的響應。

(如果此時您仍然無法連接到您的應用程序,重新啓動服務器,而且應該做的伎倆。)

我希望這可以幫助別人,將來別人。

這裏有一個有用的資源,我傾向於:https://gist.github.com/ryanj/5267357