首页 > 解决方案 > 我应该将 AzureWebApp 任务指向什么路径?

问题描述

我正在尝试部署一个反应网络应用程序。这是我当前的 yaml 文件。我一直在关注这个教程。

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'
  
variables:
  azureSubscription: <myServiceConnection>
  appName: <myAppName>

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'
  
  #so this calls the build object in package.json. Theoretically creates a /build/ directory
- script: |
    npm install
    npm run build
  displayName: 'npm install and build'

#this should copy contents of build into artifactstagingdirectory. 
- task: CopyFiles@2
  inputs:
    Contents: 'build/**' # Pull the build directory (React)
    TargetFolder: '$(Build.ArtifactStagingDirectory)' 

- task: PublishBuildArtifacts@1
  inputs: 
    pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
    ArtifactName: 'www' # output artifact named www


- task: AzureWebApp@1
  inputs:
    azureSubscription: <myServiceConnection>
    appName: <myAppName>
    appType: webAppLinux
    package: $(Build.ArtifactStagingDirectory)/**/www/build
    customWebConfig: '-handler iisnode -NodeStartFile server.js -appType node'

基本上,问题是我不明白 PublishBuildArtifact 任务在哪里发布文件,所以我不知道将 AzureWebApp 的包指向哪里。

所以我打开了system.debug,我得到了以下信息

  1. npm install build 使用以下目录:/home/vsts/work/1/s
  2. 复制文件将构建文件夹复制过来。所以它/home/vsts/work/1/s/build/home/vsts/work/1/a/build。所以这意味着 artifactstagingdirectory 是/home/vsts/work/1/a
  3. 发布构建工件获取工件分级目录并将其发布到某个文件夹www/build。提供以下输出:Upload '/home/vsts/work/1/a' to file container: '#/8995596/www'
  4. 当前 AzureWebApp 任务正在查找/home/vsts/work/1/a/**/www/build

所以我认为它应该是正确的目录。但是,它没有在步骤 3 中提供整个路径。所以看起来我错了。这个 www 文件夹是在哪里创建的?

另外,由于构建/发布 react 应用程序似乎不会创建一个 zip 文件,所以我只是将它指向构建文件夹还是 www 文件夹?

标签: azureazure-devopsazure-pipelines

解决方案


尝试 **/wwwroot/ 而不是 **/www/

查看 Microsoft 的以下博客,其中概述了部署详细信息。

https://docs.microsoft.com/en-us/azure/app-service/faq-deployment


推荐阅读