heroku上的瓶子应用程序与gunicorn - 工头在本地工作,但不在heroku上工作

时间:2014-12-24 20:51:30

标签: python heroku bottle gunicorn

在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,似乎没问题
  • " 0.0.0.0" IP I我从其他heroku示例得到了,无论如何都应该接受任何IP服务器端,不是吗?
  • Python依赖项似乎安装得很好
  • 我通过$POST文件为工头设置.env变量让我在本地运行,一切似乎都在我的设置上正常运行
  • 根据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,python,bottle& amp; gunicorn:O

2 个答案:

答案 0 :(得分:1)

您可以尝试在Procfile中只使用web: gunicorn app:app吗?

答案 1 :(得分:1)

你使用的是什么版本的gunicorn? gunicorn 19.1默认情况下不会写错误日志。试试gunicorn --log-file=-

-R也是调查错误的有用选项。