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

Jenkins流水线无法读取Kubernetes部署文件问题求助

解决Jenkins流水线找不到Kubernetes部署文件的问题

问题核心

流水线执行envsubst < Kubernetes/deployment.yml时提示文件不存在,本质是指定的文件路径与Jenkins工作区实际文件结构不匹配,或文件未被正确拉取到工作区。

排查与解决步骤

  • 核对路径拼写与大小写
    Linux环境严格区分路径和文件名的大小写,务必确认代码中Kubernetes/deployment.yml和仓库实际文件完全一致:

    • 检查目录名是Kubernetes还是小写的kubernetes
    • 检查文件后缀是.yml还是.yaml
  • 验证Jenkins工作区文件结构
    在部署步骤前添加目录检查命令,直观确认工作区是否存在目标文件:

    script.sh "pwd && ls -R"
    

    查看输出,确认Kubernetes目录及对应yml文件是否在工作区内。

  • 使用绝对路径引用文件
    避免相对路径的歧义,改用Jenkins内置的WORKSPACE变量指定绝对路径:

    script.sh "envsubst < ${WORKSPACE}/Kubernetes/deployment.yml | kubectl apply -f -"
    
  • 检查代码拉取环节
    确认Git拉取步骤是否完整:

    • 有没有进行全量拉取,不存在浅克隆或部分分支拉取的情况
    • .gitignore文件是否意外排除了Kubernetes目录,导致文件未被拉取到工作区

修改后的示例流水线代码

def kubeDeploy(String regName , String imageName , String imageVersion , String clusterCredentials , String url) {
    script.withKubeConfig([credentialsId: clusterCredentials, serverUrl: url]) {
        // 先验证文件存在性
        script.sh "ls -l ${WORKSPACE}/Kubernetes/"
        script.sh "envsubst < ${WORKSPACE}/Kubernetes/deployment.yml | kubectl apply -f -"
        script.sh "envsubst < ${WORKSPACE}/Kubernetes/service.yml | kubectl apply -f -"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:22:45