Linux 上的 ZipDeploy Azure 应用服务 Python WebApp 的
WEBSITE_RUN_FROM_PACKAGE="1"
和 SCM_DO_BUILD_DURING_DEPLOYMENT=true
选项是否兼容?
另外,我的网络应用程序正在使用gunicorn,如果这很重要的话。
当我将 python web 应用程序部署为 zip 文件时,其中包括我的 python 文件和requirements.txt(但没有 venv)。前命令:
az webapp deploy --resource-group "$resource_group_name" --name "$app_name" --type "zip" --src-path "backend.zip"
我的假设是我的 web 应用程序将由 Oryx 构建,然后 Kudu 会将包(现在包含 venv 的 zip)上传到
/home/data/SitePackages
,并在同一目录中使用 packagename.txt
。
然后它将通过安装包来运行它 /home/site/wwwroot
。
如果要将 Python 应用程序部署到 Linux Azure 应用服务,请添加名为 SCM_DO_BUILD_DURING_DEPLOYMENT
的
setting并将值设置为
true
或 1,它会在部署期间触发 Oryx 构建。 Linux 应用服务不需要 WEBSITE_RUN_FROM_PACKAGE=1
。
部署 ZIP 包时,应用服务会将其内容解压到路径
home\site\wwwroot
(对于 Windows)、/home/site/wwwroot
(对于 Linux)。
默认情况下,部署引擎假定 ZIP 包已准备好运行并且不运行任何构建自动化。
要启用远程构建自动化,请设置
SCM_DO_BUILD_DURING_DEPLOYMENT
应用程序设置。它控制构建行为并允许项目在部署期间远程构建。
WEBSITE_RUN_FROM_PACKAGE=1
将应用程序部署到 Windows 应用服务时使用此设置。 t 自动将包上传到
d:\home\data\SitePackages
文件夹。
我使用以下命令将 python 应用程序 Zip 部署到 Linux Azure 应用服务:
az webapp deploy --resource-group "<rgname>" --name "<appname>" --type "zip" --src-
path "<projectname.zip>"
在 Web 应用程序的应用程序设置中添加了
SCM_DO_BUILD_DURING_DEPLOYMENT=true
。
此设置有助于自动化构建:
gunicorn --bind=0.0.0.0 --timeout 600 --chdir appname app:app
回复:
参考资料: