GitHub Actions部署Azure Web App因存储限制失败求助
解决方案
1. 启用「从包运行」模式
F1 tier的临时存储配额远小于持久存储,GitHub Actions默认的解压式部署会占用临时空间,而VS部署可能自动启用了从包运行。开启后App Service直接从ZIP包运行,无需解压,彻底解决临时空间不足问题:
- 在GitHub Actions工作流的部署步骤中,添加应用设置配置:
- name: Deploy to Azure Web App uses: azure/webapps-deploy@v2 with: app-name: '<你的Web App名称>' slot-name: 'production' package: ${{ steps.build.outputs.webapp_package }} app-settings: | WEBSITE_RUN_FROM_PACKAGE=1 - 或者提前在Azure门户的Web App「配置-应用程序设置」中手动添加
WEBSITE_RUN_FROM_PACKAGE=1。
2. 工作流中添加预部署清理步骤
在部署前自动清理Kudu的旧临时部署文件,避免堆积占用空间:
- name: Clean up old deployment temp files uses: azure/cli@v1 with: inlineScript: | az webapp deploy --name <你的Web App名称> --resource-group <你的资源组名称> --clean true --type zip --src-path /dev/null
这个命令会触发Kudu清理旧部署的临时文件,不影响当前应用运行。
3. 强制部署时清理目标目录
如果不需要保留Web App中的非部署文件,可以在部署步骤中开启清理选项:
- name: Deploy to Azure Web App uses: azure/webapps-deploy@v2 with: app-name: '<你的Web App名称>' slot-name: 'production' package: ${{ steps.build.outputs.webapp_package }} clean: true # 清理目标目录中的旧文件
4. 检查临时存储占用
F1 tier的临时存储(Linux为/home/temp,Windows为D:\local)是独立配额,可在工作流中添加步骤查看:
- name: Check temp disk space uses: azure/webapp-ssh@v1 with: app-name: '<你的Web App名称>' command: df -h /home/temp # Linux环境;Windows用dir D:\local
确认是否是临时存储耗尽而非持久存储问题。
内容的提问来源于stack exchange,提问作者Oliver Nicholls
相关产品推荐
相关产品推荐

