通过Gunicorn在Heroku上的Django-twoscoops项目(骨架)。如何设置Procfile?

时间:2013-12-05 12:44:05

标签: django heroku gunicorn procfile

我正试图通过Gunicorn在Heroku上运行twoscoopsofdjango skeleton

以下是项目根目录中的文件树(为了便于阅读,省略了一些不重要的文件夹):

.
├── LICENSE.txt
├── my_project
│   ├── manage.py
│   ├── my_project
│   │   ├── __init__.py
│   │   ├── settings
│   │   │   ├── base.py
│   │   │   ├── __init__.py
│   │   │   ├── local.py
│   │   │   ├── production.py
│   │   │   └── test.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── templates
│       ├── 404.html
│       ├── 500.html
│       └── base.html
├── README.rst
├── requirements
│   ├── base.txt
│   ├── local.txt
│   ├── production.txt
│   └── test.txt
└── requirements.txt

现在我需要运行Gunicorn,好像它是从以下缩短树中的my_project文件夹运行的:

.
├── LICENSE.txt
├── my_project
│   ├── manage.py

但是,我需要从项目根目录中提供命令,因为Heroku Procfile仅在项目根目录的最低级别上获取。

所以在本地shell中我只需cd my_project然后运行gunicorn my_project.wsgi --settings=my_project.settings.production。但我不知道如何从Procfile

这样做

仅为了您的信息gunicorn --pythonpath=my_project my_project.wsgi --settings=my_project.settings.production也不起作用。

1 个答案:

答案 0 :(得分:0)

似乎我必须运行heroku ps:scale web=1才能使其正常运行。这很奇怪,因为我100%确定我之前启动了其他Heroku项目,并且我没有必要运行该命令才能看到我的应用程序在http://my_project.herokuapp.com中运行。

我的Procfile在成功运行时看起来像这样:

web: cd my_project; gunicorn my_project.wsgi --settings=my_project.settings.production

修改

我之前使用-w 1选项运行了gunicorn:

web: cd my_project; gunicorn my_project.wsgi -w 1 --settings=my_project.settings.production

这可能激活了一个dyno。