You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GitHub Actions部署Azure的Node子目录应用无法启动求助

问题:部署子目录Node.js服务到Azure Web App后无法启动,显示默认页面

问题背景

将GitHub仓库子目录src/server_example中的Express服务通过GitHub Actions部署到Azure Web App后,构建和部署流程均显示成功,但访问Web App URL时仍显示Azure默认提示页面Your web app is running and waiting for your content,服务未正常启动。

仓库目录结构:

.github
  workflows
    main_serverexamplewebapp.yml
src
  server_example
    package.json
    server.js
  project_2

核心原因

GitHub Actions的upload-artifact步骤错误地将整个仓库根目录作为工件上传,导致Azure Web App的站点根目录(site/wwwroot)包含完整仓库结构,而非src/server_example下的核心文件。Azure无法在站点根目录找到package.json,因此不会执行启动脚本。

解决方案

1. 修正GitHub Actions的工件上传路径

修改build任务中的Upload artifact for deployment job步骤,指定仅上传src/server_example目录内的所有文件:

- name: Upload artifact for deployment job
  uses: actions/upload-artifact@v2
  with:
    name: node-app
    path: ./src/server_example/**/*

此配置会将server_example目录下的package.json、server.js及依赖包直接上传,部署后Azure站点根目录将直接包含这些核心文件。

2. (可选)规范package.json配置

将package.json中的main字段从index.js改为server.js,保持与启动脚本一致(不影响功能,但更符合规范):

{
  "name": "server_example",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  // 其他字段不变
}

3. 验证部署效果

重新触发GitHub Actions部署后,可通过Azure门户的高级工具 > SSH/Kudu控制台查看site/wwwroot目录,确认根目录下存在package.json和server.js。此时Azure会自动执行npm start启动服务,访问Web App URL即可看到预期的{"message": "Welcome!"}响应。

内容的提问来源于stack exchange,提问作者pupadupa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:10:10