在heroku上部署时,我一直试图让我的简单bottle
应用启动。
经过一番搜索和修补,我得到了一个在本地工作的设置,但没有在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:app"部分看起来在模块(=文件)中称为app.py并使用变量中的任何内容" app"作为你的WSIG,是吗?
$ heroku run bash
检查了如果设置了$ PORT,似乎没问题$POST
文件为工头设置.env
变量让我在本地运行,一切似乎都在我的设置上正常运行$ 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,python,bottle& amp; gunicorn:O
答案 0 :(得分:1)
您可以尝试在Procfile中只使用web: gunicorn app:app
吗?
答案 1 :(得分:1)
你使用的是什么版本的gunicorn?
gunicorn 19.1默认情况下不会写错误日志。试试gunicorn --log-file=-
。
-R
也是调查错误的有用选项。