无Web框架Python定时任务应用部署Azure App Service Linux遇障求助
问题排查与解决方案
核心问题分析
错误日志显示应用找不到/tmp/8dbe2c7322f355e/config/config.json,本质是配置文件未被正确部署到Azure App Service的应用目录,或应用执行时的工作目录与预期不符。
具体解决步骤
1. 确认部署包包含config目录
检查GitHub Action中${{ vars.DEPLOY_PATH }}指向的部署源(文件或目录)是否包含完整的config目录及其中的config.json:
- 如果是打包为
output.tar.gz,确保打包命令包含所有必要文件,例如:tar -czf output.tar.gz . # 打包当前目录下所有文件,包括config - 若直接部署项目根目录,将
package值设为.(前提是Action在项目根目录执行),避免遗漏文件。
2. 修正启动命令的工作目录
Azure App Service的Oryx工具会将部署包解压到临时目录,但启动命令默认可能未切换到正确的应用根目录。修改启动命令为:
cd /home/site/wwwroot && python main.py dev s
3. 修复代码中的路径引用
确保代码中读取配置文件使用相对路径而非硬编码绝对路径,例如:
import os config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "config", "config.json")
这样无论应用部署在哪个目录,都能正确找到配置文件。
4. 调整GitHub Action部署配置
更新Azure WebApp Deploy步骤,确保所有文件被完整上传:
- name: azure webapp deploy uses: azure/webapps-deploy@v2 with: app-name: ${{ vars.APP_NAME }} package: . # 直接部署项目根目录,包含所有文件 startup-command: 'cd /home/site/wwwroot && python main.py dev s'
内容的提问来源于stack exchange,提问作者Mahajan344
相关产品推荐
相关产品推荐

