簡體   English   中英

Django 應用程序的 Procfile 中應該包含什么?

[英]What should go in my Procfile for a Django application?

我的Procfile應該為 Heroku 上的 Django 應用程序添加什么內容?

我試過:

web: python appname.py

因為我為 python 應用程序找到了一個這樣的例子。

進一步搜索並沒有讓事情變得更清楚,只是我可能需要使用 gunicorn 而不是 python。 我發現了各種建議各種格式的帖子,例如:

web gunicorn
web:gunicorn
web: gunicorn

我不知道在 gunicorn 之后應該是什么,有些帖子有編程語言,有些有 IP 地址,有些有其他各種東西。

有人建議運行:

heroku ps:scale web=1

但這會導致錯誤:

Scaling dynos... !
 !    Couldn't find that process type (web).

我只是沒有線索,不知道該轉向哪里。

自從發布后,我觀看了一些關於此的視頻並嘗試過:

web: gunicorn appname.wsgi

在我的 Procfile 中,但它仍然不起作用,仍然導致:

at=error code=H14 desc="No web processes running"

Heroku 的Procfile格式非常簡單。 如文檔中所述

Procfile 在單獨的行上聲明其進程類型,每行都具有以下格式:

 <process type>: <command>

可以看到進程類型后面應該有一個冒號,所以

web gunicorn

您問題中的示例無法正常工作。 您需要以web:開頭。

<command>表示進程類型的每個dyno在啟動時應該執行的命令,例如rake jobs:work

對於 Django,在開發中您通常會使用python manage.py runserver來運行應用程序,因此對 Django 的合理嘗試是

web: python manage.py runserver

這應該有效,但不適用於生產工作

請勿在生產環境中使用此服務器。 它沒有經過安全審計或性能測試。 (這就是它的保留方式。我們的工作是制作 Web 框架,而不是 Web 服務器,因此改進此服務器以處理生產環境超出了 Django 的范圍。)

相反,您應該在生產中使用生產級 Web 服務器。 Gunicorn 是一個常見的選擇, 你可以像這樣使用 Gunicorn 運行你的 Django 應用程序

gunicorn myproject.wsgi

Procfile ,Heroku 上 Django 的Procfile可能看起來像

web: gunicorn myproject.wsgi

其中myproject是您的 Django 項目的名稱。 正是 Heroku 文檔對 Django 應用程序 的建議

請注意,您必須將 Gunicorn 添加到您的項目依賴項中,以便 Heroku 安裝它。 我還建議在本地安裝它,以便您可以使用heroku local以更類似於 Heroku 生產環境的方式在您的開發機器上測試您的應用程序。

heroku ps:scale用於更改您已經定義的進程類型的 dynos 的數量和類型。 它與定義這些流程類型無關。 這就是您的Procfile的用途。

Procfile ,輸入

release: python manage.py migrate
web: gunicorn yourprojectname.wsgi

runtime.txt像這樣輸入你的 python 版本

python-3.9.6

最后你需要requirements.txt

  • 首先在 heroku 儀表板中創建一個應用程序並選擇一個有意義的名稱
  • 復制它的 url: herokuappname.herokuapp.com in ALLOWED_HOSTS = ['herokuappname.herokuapp.com']
  • 設置DEBUG = False
  • 然后在您的終端中導航到項目文件夾並一一鍵入以下命令
  • Heroku login
  • heroku git:remote -a yourAppname
  • git init
  • git add .
  • git commit -m "first push"
  • git push heroku master

部署成功后

  • heroku logout

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM