我一直堅持試圖讓我的簡單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型
謝謝,試過了,儘管我找不到'--log-file'選項,但也許'--access-logfile =「 - 」'也一樣嗎?結果仍然是一樣的,本地作品,在heroku上的應用程序崩潰。 – kontur
否 - 訪問日誌文件是accesslog。 --log文件是錯誤日誌。 http://gunicorn-docs.readthedocs.org/en/latest/settings.html#errorlog – methane
啊,這樣做。有錯誤的痕跡,顯然我有一個模塊錯誤地(但本地)在.gitignore,這使得整個事情崩潰,並在heroku上燒傷。當我查看文檔時,我也沒有看到命令別名,所以謝謝指出:) – kontur