2014-12-24 145 views
1

我一直堅持試圖讓我的簡單bottle應用程序啓動時部署在heroku上。與gunicorn - hero工作在heroku上的應用程序本地工作,但不heroku

經過相當多的搜索和修補後,我有一個本地工作的設置,但不是在heroku上。

/app.py

import bottle 
import beaker.middleware 
from bottle import route, redirect, post, run, request, hook, template, static_file, default_app 

bottle.debug(True) 
app = beaker.middleware.SessionMiddleware(bottle.app(), session_opts) 
... 
# app routes etc, no run() 

然後在/Procfile

web: gunicorn app:app --bind="0.0.0.0:$PORT" --debug 

糾正我,如果我誤解是如何工作的gunicorn,我明白了 「應用:應用」 部分爲外觀的模塊中(=文件)稱爲app.py並使用變量「app」中的任何內容作爲WSIG,是的?

  • 如果$端口設置,我通過$ heroku run bash檢查,似乎確定
  • 的「0.0.0.0」 IP我已經從其他Heroku的例子有,應該反正接受任何IP地址的服務器端,不是嗎?
  • Python的依賴關係似乎得到安裝精細
  • 我有了這個由通過.env文件工頭設置$POST變量本地運行,一切似乎都基於this SO question我檢查$ heroku ps
  • 在我的設置
  • 工作確定

=== web (1X): `gunicorn app:app --bind="0.0.0.0:$PORT" --debug` web.1: crashed 2014/12/24 22:43:00 (~ 1m ago)*)

  • $ heroku logs顯示:

2014-12-24T20:42:59.235657+00:00 heroku[web.1]: Starting process with command `gunicorn app:app --bind="0.0.0.0:23177" --debug` 2014-12-24T20:43:00.434570+00:00 heroku[web.1]: State changed from starting to up 2014-12-24T20:43:01.813679+00:00 heroku[web.1]: State changed from up to crashed 2014-12-24T20:43:01.803122+00:00 heroku[web.1]: Process exited with status 3

不知道我真的怎麼能得到更好的調試結果無論是。不知何故,Procfile網絡進程似乎並沒有工作/開始,但我怎樣才能獲得關於破解的信息?

任何人都有想法這裏發生了什麼?

P.S:我是相當新的Heroku的,蟒蛇,瓶& gunicorn:O型

回答

1

你使用什麼版本的gunicorn? gunicorn 19.1默認不寫錯誤日誌。嘗試gunicorn --log-file=-

-R也是有用的選項來調查錯誤。

+0

謝謝,試過了,儘管我找不到'--log-file'選項,但也許'--access-logfile =「 - 」'也一樣嗎?結果仍然是一樣的,本地作品,在heroku上的應用程序崩潰。 – kontur

+1

否 - 訪問日誌文件是accesslog。 --log文件是錯誤日誌。 http://gunicorn-docs.readthedocs.org/en/latest/settings.html#errorlog – methane

+0

啊,這樣做。有錯誤的痕跡,顯然我有一個模塊錯誤地(但本地)在.gitignore,這使得整個事情崩潰,並在heroku上燒傷。當我查看文檔時,我也沒有看到命令別名,所以謝謝指出:) – kontur

1

你可以嘗試在你的Procfile只是web: gunicorn app:app沒有別的?

+0

感謝您的建議。試過了,它不適用於heroku,但在本地。正如預期的那樣,我可能會補充一點,因爲根據我的理解,heroku動態地提供了應用程序應該監聽的端口。 – kontur

+1

@kontur有趣的是,我目前在heroku上運行一個燒瓶應用程序,它只是在Procfile中運行... – cloudcrypt

+0

嗯,也許你的應用程序模塊在啓動時以某種方式檢索端口號?感謝您的建議,但不幸的是,它似乎並沒有解決這個問題。 – kontur

相關問題