在Azure Python WebApp Zip部署(Oryx)中安装Linux依赖
在Azure App Service Python应用(Zip部署)中安装Linux依赖包的可行方案
方法1:自定义部署脚本(适配Oryx流程)
Oryx支持执行自定义构建脚本,你可以在部署阶段嵌入系统包安装逻辑:
- 在项目根目录创建
.deployment配置文件,指定自定义脚本路径:
[config] command = bash deploy.sh
- 编写
deploy.sh脚本,包含依赖安装和Oryx原生构建流程:
#!/bin/bash # 替换为你实际需要的Linux依赖包,示例为PostgreSQL和OpenCV的依赖 apt-get update && apt-get install -y --no-install-recommends libpq-dev libgl1-mesa-glx # 调用Oryx完成Python应用的构建部署,根据你的Python版本调整platform-version oryx build "$DEPLOYMENT_SOURCE" -o "$DEPLOYMENT_TARGET" --platform python --platform-version 3.10
- 将
.deployment、deploy.sh与代码一起打包成Zip,直接部署到App Service即可。
方法2:启动命令补装(兜底方案)
如果构建阶段安装的包在运行时异常丢失,可通过启动命令补装:
在Azure门户进入App Service的「配置」→「常规设置」,将启动命令修改为:
apt-get install -y libpq-dev libgl1-mesa-glx && gunicorn --bind=0.0.0.0 --timeout 600 app:app
- 替换
libpq-dev...为你的目标依赖包,gunicorn...为应用实际的启动命令
注意事项
- 确保
deploy.sh有可执行权限:本地打包前执行chmod +x deploy.sh,或确保脚本开头的#!/bin/bash正确 - 使用
--no-install-recommends参数减少冗余依赖,避免部署超时或存储空间不足 - 若安装包需要sudo权限,无需手动添加,App Service部署环境默认具备足够权限
内容的提问来源于stack exchange,提问作者Ievgen
相关产品推荐
相关产品推荐

