首页 > 解决方案 > 如何使用 Azure CI/CD Pipeline 将 Ember.js 应用程序正确部署到 Azure 应用程序服务?

问题描述

我有一个简单的 Ember.js 单页 Web 应用程序,它是使用此 Ember.js 教程(已完成第 1 部分和第 2 部分)创建的:

Ember.js 教程

我现在正在尝试熟悉 Azure CI/CD 管道,首先为应用程序创建一个 Azure DevOps Git 存储库,然后创建一个由推送到 Git 存储库触发的构建管道,最后是一个发布管道以将站点发布到构建成功后的 Azure 应用服务。

构建和发布管道都成功了,但是当我访问该站点时,它显示了一个空白的 node.js 页面:

空白 node.js 页面

有人可以帮我找出我在这里出错的地方吗?我的猜测是它与构建和/或发布管道的配置有关。只是似乎无法找到哪个特定部分不正确。任何帮助深表感谢。如果需要,我可以提供更多信息:)

这是我对构建管道的配置

  1. 用于构建管道的 YAML 代码
    # Build a general Node.js project with npm.
    # Add steps that analyze code, save build artifacts, deploy, and more:
    # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
    
    trigger:
    - master
    
    pool:
      vmImage: ubuntu-latest
    
    steps:
    - task: NodeTool@0
      inputs:
        versionSpec: '6.x'
        checkLatest: true
    
    - task: Npm@1
      inputs:
        command: 'install'
        workingDir: 'app/'
    
    - task: ArchiveFiles@2
      inputs:
        rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
        includeRootFolder: true
        archiveType: 'zip'
        archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
        replaceExistingArchive: true
    
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'

这是发布管道中的配置

  1. 工件配置

工件配置

  1. 持续部署配置

持续部署配置

  1. 第 1 阶段:部署过程

在此处输入图像描述

  1. 代理工作

在此处输入图像描述 在此处输入图像描述

  1. 用于部署到 Azure 应用服务的 YAML
steps:
- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy Azure App Service'
  inputs:
    azureSubscription: '$(Parameters.ConnectedServiceName)'
    appType: '$(Parameters.WebAppKind)'
    WebAppName: '$(Parameters.WebAppName)'
    RuntimeStack: 'NODE|14-lts'
    StartupCommand: '$(Parameters.StartupCommand)'
    WebConfigParameters: '-Handler iisnode -NodeStartFile server.js -appType node'
    AppSettings: '-WEBSITE_NODE_DEFAULT_VERSION 6.9.1'

我还想提一下,Azure App Service 堆栈设置是 Node 14,并且在 linux 上运行。

谢谢!

标签: javascriptnode.jsazureember.jscontinuous-integration

解决方案


推荐阅读