亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 dockerfile 中的 uvicorn 命令運行 fastapi 和從 pythonfile

從 dockerfile 中的 uvicorn 命令運行 fastapi 和從 pythonfile

FFIVE 2023-04-18 15:25:48
我正在運行一個快速的 api,當我開發時,我的 app.py 文件中有以下代碼app.py 中的代碼:import uvicornif __name__=="__main__":    uvicorn.run("app.app:app",host='0.0.0.0', port=4557, reload=True, debug=True, workers=3)所以我正要CMD ["python3","app.py"]在我的 Dockerfile 中運行。在 fastapi 示例中,他們做了這樣的事情:CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]我想知道這兩種方法有什么區別,因為我認為它們都可以。
查看完整描述

2 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

不,沒有區別。

命令行運行方法 (?uvicorn app.main:app) 和使用 python 命令 (?python app.py) 執行 app.py 是相同的。uvicorn.main.run(...)這兩種方法都在后臺調用函數。

換句話說,uvicorn命令是函數的快捷方式uvicorn.run(...)。

所以,在你的情況下函數調用

uvicorn.run("app.app:app",host='0.0.0.0',?port=4557,?reload=True,?debug=True,?workers=3)

可以通過 uvicorn 命令行來完成,

uvicorn?app.app:app?--host?0.0.0.0?--port?4557?--reload?--debug?--workers


查看完整回答
反對 回復 2023-04-18
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

答案是否定的。應用程序不會有任何區別,使用Docker進行部署只是使其更容易,如果沒有 Docker,您需要使用ASGI兼容服務器(如 Uvicorn)運行它,您可能還需要設置一些工具以確保它在停止或停止時自動重新啟動崩潰。Docker 鏡像可以自動處理所有這些工作,而不是嘗試手動處理。



查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 908 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號