Azure WebJobs CD 擦除 wwwroot 内容

问题描述 投票:0回答:2

我正在将 2 个 Web 作业发布到各自的路径:

但是,每次

site\wwwroot
里面的内容都会被删除,而我在那里发布了一个API项目,所以,每次我都需要重新发布API。

我在任何地方都找不到解决方案,为什么会发生这种情况?

这是我的网络工作 CD:

我希望每次发布网络作业时都必须重新发布我的 API。

azure azure-devops azure-web-app-service azure-webjobs continuous-delivery
2个回答
0
投票

为了使

Webjobs
正确部署,您需要在
app folder
中一起构建它们,然后 将构建工件发布到 Azure Web App 服务。

请参考我的答案这里

我的 Azure DevOps yaml 管道:-

trigger:
- master

pool:
  vmImage: 'windows-latest'

jobs:
- job: BuildAndDeployWebJobs
  displayName: 'Build and Deploy Web Jobs'

  steps:
  - task: UseDotNet@2
    inputs:
      packageType: 'sdk'
      version: '3.x'
      installationPath: $(Agent.ToolsDirectory)/dotnet

  - task: DotNetCoreCLI@2
    inputs:
      command: 'build'
      projects: '**/*.csproj'
      arguments: '--configuration Release'

  - task: DotNetCoreCLI@2
    inputs:
      command: 'publish'
      publishWebProjects: false
      projects: '**/Webjob1.csproj'
      arguments: '--output $(Build.BinariesDirectory)/publish_output/App_Data/jobs/continuous/WebJob1'
      zipAfterPublish: false
      modifyOutputPath: false

  - task: DotNetCoreCLI@2
    inputs:
      command: 'publish'
      publishWebProjects: true
      projects: '**/WebJobExample.WebJob.csproj'
      arguments: '--output $(Build.BinariesDirectory)/publish_output/App_Data/jobs/continuous/WebJobExample'
      zipAfterPublish: false
      modifyOutputPath: false

  - task: ArchiveFiles@2
    inputs:
      rootFolderOrFile: '$(Build.BinariesDirectory)/publish_output'
      includeRootFolder: false
      archiveType: 'zip'
      archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - task: AzureRmWebAppDeployment@4
    inputs:
      ConnectionType: 'AzureRM'
      azureSubscription: 'xxx subscription (xxxxxxxxx97cb2a7)'
      appType: 'webApp'
      WebAppName: 'siliconwebapp098'
      packageForLinux: '$(Agent.BuildDirectory)/**/*.zip'
      JSONFiles: '**/appsettings.json'

我分别构建了 WebJobs,然后将 构建工件发布到上面的 Azure Web 应用程序

输出:-

enter image description here

enter image description here

发布管道:-

enter image description here

enter image description here

enter image description here


0
投票

当我尝试将文件部署到虚拟应用程序路径时,我可以重现该问题,并且我发现

site\wwwroot
文件夹将恢复到旧的最后版本。

解决方法

如果我将任务版本从

AzureRmWebAppDeployment@4
更改为
AzureRmWebAppDeployment@3
,它会起作用,并且不会更改
site\wwwroot
文件夹中的文件。我还找到了一个已知问题here供您参考。

© www.soinside.com 2019 - 2024. All rights reserved.