ProcfileHeroku 上的 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"
uj5u.com熱心網友回復:
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
綜上所述,ProcfileHeroku 上的 Django 可能看起來像
web: gunicorn myproject.wsgi
myprojectDjango 專案的名稱在哪里。這正是 Heroku 檔案對 Django 應用程式的建議。
請注意,您必須將 Gunicorn 添加到您的專案依賴項中,以便 Heroku 安裝它。我還建議在本地安裝它,以便您可以使用heroku local更類似于 Heroku 生產環境的方式在您的開發機器上測驗您的應用程式。
heroku ps:scale用于更改您已經定義的流程型別的 dynos 的數量和型別。它與定義這些流程型別無關。這就是你的Procfile目的。
uj5u.com熱心網友回復:
您需要 3 個檔案才能將 django 應用程式成功部署到 Heroku。
Procfileruntime.txtrequirements.txt
這兩個模塊應該在你的 requirements.txt 中
- 獨角獸
- Psycopg2-二進制
在Procfile,輸入
release: python manage.py migrate
web: gunicorn yourprojectname.wsgi
第一行解釋了部署的型別,
release這意味著生產版本,然后migrate我想你知道會做什么。第二行說明 Gunicorn 是適用于 UNIX 的 Python WSGI HTTP 服務器
在
runtime.txt鍵入您的Python版本是這樣python-3.9.6
您可以使用此終端命令查看您擁有的 Python 版本 python --version
- 最后,您將需要
requirements.txt,如果您在虛擬環境中操作,則可以pip freeze > requirements.txt在venv激活時生成它。
專案啟動步驟,最簡單的方法:
- 停用您
venv的以防萬一 - 轉到heroku儀表板
- 創建一個應用程式并選擇一個有意義的名稱和免費計劃,這將允許您免費運行 1 個工人
- 復制它的 url:
herokuappname.herokuapp.com然后在settings.py, 粘貼它ALLOWED_HOSTS = ['herokuappname.herokuapp.com'] - Set
DEBUG = False,在生產環境中不允許除錯 - 然后在您的終端中導航到專案檔案夾并一一鍵入以下命令
Heroku login# 登錄您的 Heroku 帳戶heroku git:remote -a yourAppname# 連接到您已經創建的應用程式git init# 初始化你的倉庫git add .# 將所有專案的檔案添加到初始化的 repogit commit -m "first push"# 犯罪git push heroku master# 將專案檔案推送到遠程 Heroku 應用程式倉庫
部署成功后,輸入-回車
heroku logout# 退出
您將使用哪種存盤?
因為 Heroku 不托管靜態檔案。
- 您可以
Azure storage免費使用。完整教程在這里
這是我部署到 Heroku 并使用 azure 存盤的專案模型,您將找到所有需要的詳細資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/322274.html
上一篇:在自定義命令中將時間戳轉換為日期
