2012-04-13 3 views
0

私はherokuに新しい展開を試しています、問題なしで実行するgeddyを得るように見えることはできません。herokuでgeddyを起動すると、エラーR11(Bad bind)で失敗します。展開に何が問題なのですか?私は何が欠けていますか?

私はこのエラーに

エラーR11(バート・バインド)得続ける - ポート5768にバインドされた>プロセスを、41113

Procfile

web: geddy -p 5768 

パッケージを(環境変数PORTを参照)でなければなりません。 JSON

{ 
    "name": "oskalisti", 
    "version": "0.0.1", 
    "dependencies": { 
    "geddy": "0.3.20", 
    "jake": "0.2.31" 
    } 
} 

完全なログ:

2012-04-13T17:47:26+00:00 app[web.1]: [Fri, 13 Apr 2012 17:47:26 GMT] INFO Server starting with config: { 
2012-04-13T17:47:26+00:00 app[web.1]: "environment": "development", 
2012-04-13T17:47:26+00:00 app[web.1]: "workers": 1, 
2012-04-13T17:47:26+00:00 app[web.1]: "port": "5768", 
2012-04-13T17:47:26+00:00 app[web.1]: "debug": true, 
2012-04-13T17:47:26+00:00 app[web.1]: "rotateWorkers": false, 
2012-04-13T17:47:26+00:00 app[web.1]: "rotationWindow": 7200000, 
2012-04-13T17:47:26+00:00 app[web.1]: "rotationTimeout": 300000, 
2012-04-13T17:47:26+00:00 app[web.1]: "logDir": "/app/log", 
2012-04-13T17:47:26+00:00 app[web.1]: "gracefulShutdownTimeout": 30000, 
2012-04-13T17:47:26+00:00 app[web.1]: "heartbeatInterval": 5000, 
2012-04-13T17:47:26+00:00 app[web.1]: "heartbeatWindow": 20000, 
2012-04-13T17:47:26+00:00 app[web.1]: "staticFilePath": "/app/public", 
2012-04-13T17:47:26+00:00 app[web.1]:  "store": "memory", 
2012-04-13T17:47:26+00:00 app[web.1]:  "key": "sid", 
2012-04-13T17:47:26+00:00 app[web.1]: "sessions": { 
2012-04-13T17:47:26+00:00 app[web.1]:  "expiry": 1209600 
2012-04-13T17:47:26+00:00 app[web.1]: "cookieSessionKey": "sdata", 
2012-04-13T17:47:26+00:00 app[web.1]: "metrics": null, 
2012-04-13T17:47:26+00:00 app[web.1]: }, 
2012-04-13T17:47:26+00:00 app[web.1]: "i18n": { 
2012-04-13T17:47:26+00:00 app[web.1]:  "defaultLocale": "en-us", 
2012-04-13T17:47:26+00:00 app[web.1]:  "loadPaths": [ 
2012-04-13T17:47:26+00:00 app[web.1]:  "/app/config/locales" 
2012-04-13T17:47:26+00:00 app[web.1]:  ] 
2012-04-13T17:47:26+00:00 app[web.1]: }, 
2012-04-13T17:47:26+00:00 app[web.1]: "ssl": null, 
2012-04-13T17:47:26+00:00 app[web.1]: "model": { 
2012-04-13T17:47:26+00:00 app[web.1]:  "useTimestamps": false, 
2012-04-13T17:47:26+00:00 app[web.1]:  "forceCamel": true 
2012-04-13T17:47:26+00:00 app[web.1]: }, 
2012-04-13T17:47:26+00:00 app[web.1]: "detailedErrors": true, 
2012-04-13T17:47:26+00:00 app[web.1]: "hostname": null 
2012-04-13T17:47:26+00:00 app[web.1]: } 
2012-04-13T17:47:26+00:00 app[web.1]: [Fri, 13 Apr 2012 17:47:26 GMT] INFO Creating 1 worker process. 
2012-04-13T17:47:26+00:00 app[web.1]: [Fri, 13 Apr 2012 17:47:26 GMT] INFO Server worker running in development on port 5768 with a PID of: 6 
2012-04-13T17:47:26+00:00 app[web.1]: [Fri, 13 Apr 2012 17:47:26 GMT] DEBUG LOGGING STARTED ============================================ 
2012-04-13T17:47:26+00:00 app[web.1]: [Fri, 13 Apr 2012 17:47:26 GMT] DEBUG ============================================================ 
2012-04-13T17:47:27+00:00 heroku[web.1]: Error R11 (Bad bind) -> Process bound to port 5768, should be 22421 (see environment variable PORT) 

ご協力いただければ幸いです。ありがとう。

答えて

6

OK、問題が見つかりました。

Procfileでは、私はポート番号を使用すべきではありません。herokuはそのポートを$ PORT変数で提供します。

だから私はProcfileは次のように見せていた。

web: geddy -p $PORT 

そしてそれは働きました。そこprocess.env.PORTライン:

var config = { 
    detailedErrors: false 
, hostname: null 
, port: process.env.PORT 
, sessions: { 
    store: 'memory' 
    , key: 'sid' 
    , expiry: 14 * 24 * 60 * 60 
    } 
}; 

module.exports = config; 

お知らせポート:私もそうのように、同様Herokuのポートを使用するようにproduction.js環境設定ファイルを変更しました。その後

、あなたはあなたのファイルがそのように変更した場合、代わりにProcfileファイルに$ PORT変数を使用しての、あなただけのこのようgeddyを起動することができます。

web: geddy -e production 

ちょうど良く練習、本番構成その方法ロードされ、真に異なる環境をサポートすることができます。

関連する問題