Procfile声明类型 - > (无)在Heroku

时间:2012-07-18 08:45:04

标签: django heroku python-2.7

我通过Procfile在Heroku上运行Django 1.4应用程序。我已经阅读了所有相关帖子,我确定这不是区分大小写的相关问题,因为我正确地命名为Procfile。这是我的项目结构。注意Procfile与manage.py

处于同一级别
.
├── README.md
├── docs
├── project
│   ├── Procfile
│   ├── client
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── models.py
│   │   ├── templates
│   │   │   └── welcome.html
│   │   ├── tests.py
│   │   ├── views.py
│   │   └── views.pyc
│   ├── manage.py
│   └── wings
│       ├── __init__.py
│       ├── __init__.pyc
│       ├── settings.py
│       ├── settings.pyc
│       ├── urls.py
│       ├── urls.pyc
│       ├── wsgi.py
│       └── wsgi.pyc
├── requirements.txt
├── static
│   ├── css
│   ├── images
│   └── js
├── tests
└── uploads

这是Procfile:

web:python manage.py runserver

这里的工头输出在本地运行(工作正常)

10:29:28 web.1     | started with pid 595

我在推送到heroku时得到了这个:

Procfile declares types -> (none)

尝试通过heroku toolbelt进行扩展:

$ heroku ps:scale web=1 --app myapp
Scaling web processes... failed
!    Record not found.

我总是通过网络创建我的应用程序,所以我需要总是把--app参数。可能与我创建应用程序的方式有关吗?

我也尝试了以下内容:

MacBook-Pro-de-Sergio:myapp sergio$ heroku run python project/manage.py runserver
Running `python project/manage.py runserver` attached to terminal... up, run.1
Validating models...

0 errors found
Django version 1.4, using settings 'wings.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

这是我的应用的日志:

2012-07-18T09:18:51+00:00 heroku[run.1]: Starting process with command `python       project/manage.py runserver`
2012-07-18T09:18:51+00:00 heroku[run.1]: State changed from starting to up
2012-07-18T09:19:16+00:00 heroku[router]: Error H14 (No web processes running) -> GET peoplewings.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-07-18T09:19:16+00:00 heroku[router]: Error H14 (No web processes running) -> GET peoplewings.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=

答案

正如Neil所指出的,Procfile应该在git repo的根目录中。 我还必须将Procfile上的主机和端口设置为默认Web服务器指向127.0.0.1:8000,这在heroku上不起作用

web: python project/manage.py runserver 0.0.0.0:$PORT

2 个答案:

答案 0 :(得分:4)

您的Procfile需要位于推送到Heroku的git存储库的根目录中。

答案 1 :(得分:3)

记录名称和内容之间的空格似乎很重要:

使用:

web: python manage.py runserver

而不是

web:python manage.py runserver