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

Azure发布流水线报错:未找到匹配<file>的清单文件如何解决?

报错根因分析
  • 构建阶段未正确打包K8s部署清单(Manifest)文件到发布制品:你当前构建流水线的PublishPipelineArtifact@1任务填写的发布路径是$(Agent.ReleaseDirectory),该路径在构建阶段默认无业务文件,且你已注释CopyFiles@2任务,没有把代码库中存放的deployment、service等K8s配置文件复制到待发布目录。
  • 发布流水线部署任务的Manifest路径配置错误:部署AKS的Kubernetes任务中填写的Manifest搜索路径与制品解压后的实际文件路径不匹配,无法匹配到对应配置文件。
  • 小概率场景:构建阶段未完整拉取代码库,导致Manifest文件未下载到构建代理节点。
修复方案

1. 调整构建流水线配置,正确打包制品

取消CopyFiles@2任务的注释,调整文件匹配规则和发布路径,示例配置如下:

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)' # 构建代理拉取代码的根目录,无需修改
    Contents: |
      **/manifests/*.yaml # 按你代码库中Manifest文件的实际存放路径调整,如直接放在根目录则写*.yaml
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
    condition: succeededOrFailed()

- task: PublishPipelineArtifact@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)' # 替换原有的$(Agent.ReleaseDirectory)
    ArtifactName: 'drop'
    publishLocation: 'Container'

修改后重新运行构建流水线,确认制品drop中已经包含所有需要的K8s配置文件。

2. 校准发布流水线部署任务的路径配置

在AKS部署的Kubernetes任务中,Manifest路径填写要匹配制品解压后的实际路径,示例如下:
$(System.DefaultWorkingDirectory)/drop/manifests/*.yaml
注意路径的大小写、层级要和代码库中的配置完全一致

3. 路径校验(可选,排查用)

如果调整后仍报错,可在发布流水线的部署任务前新增一个命令行任务,执行以下命令打印当前工作目录的文件结构:

  • Windows代理:dir /s $(System.DefaultWorkingDirectory)
  • Linux代理:ls -R $(System.DefaultWorkingDirectory)
    运行发布流水线后查看该任务的日志,确认Manifest文件的实际存放路径,再修改部署任务的路径配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:15:04