2012-11-19 43 views
3

我正在嘗試在Heroku上部署一款紅寶石(不適用於 rails)應用程序。我的proc文件的佈局如下:如何在Heroku上運行控制檯應用程序?

console: bundle exec ruby main.rb 

但是,我的應用程序從來沒有真正啓動。系統上的日誌都很安靜,沒有任何錯誤輸出。

如果我運行如本地系統上的proc文件所示的命令,我的程序將啓動並按照它應該運行。

更有趣的是,如果我運行heroku console,應用程序立即在控制檯上自動啓動。看起來像一些與procfile的交互?如何在未連接到Heroku上的控制檯的情況下自動啓動我的應用程序並捕獲stdout?

回答

5

如果你想console進入運行,你需要scale it

$ heroku ps:scale console=1 

這就是說,Heroku的使用console表示「那我用我的應用程序執行某些互動式管理功能的東西」,這就是爲什麼heroku console運行console Procfile條目爲您提供了一個雙向管道。你似乎有不同的含義 - 「我需要經常運行以執行某些後臺任務的事情」。 (web對Heroku也有特殊的含義 - 路由網格會發送HTTP請求到web進程。)因此我也會重命名這個,所以console仍然意味着「console」。

你可以選擇main,與main.rb奇偶校驗,而是我會鼓勵你想想這部分實際上並,而是給雙方Procfile進入和main.rb描述性標籤。

+0

啊哈!我還沒有讀Heroku足夠的文檔,接下來的入門指南使它聽起來像Procfile條目必須是Heroku的後端有點意義的靜態名稱(Web定義了一個網絡測試儀,所以它遵循控制檯...) 我將控制檯更名爲機器人,然後縮放它到1 - 一切都和世界一致。我希望這樣做(規模= 1部分)部署,但我可以研究。非常感謝! –

+0

您的流程構成是一個應用程序屬性,保留部署。 Heroku默認爲'web = 1'(和其他所有的0),但是一旦你設置了'web = 0' +'bot = 1',它會一直保持,直到你再次改變它。 – willglynn

+0

沒有任何數量的谷歌搜索是把這個了..我在哪裏設置這個選項? @willglynn –

相關問題