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

Tekton Pipeline任务间存储共享及Gradle构建报错排查

问题根因
  • 核心问题是你用emptyDir作为Pipeline共享工作空间的存储类型:emptyDir是Pod级别的临时存储,生命周期和所属Pod完全绑定,Tekton中每个Task运行在独立Pod中,clone任务结束后对应的Pod销毁,里面emptyDir存储的克隆代码会被直接清空,build任务启动的新Pod挂载的是全新的空emptyDir,自然找不到代码文件。
  • 补充说明:官方git-clone Task默认会将仓库代码直接克隆到绑定的workspace根路径,不会额外生成仓库名目录,存储为空的情况下,你配置的./discount-api路径根本不存在,就会抛出你看到的Gradle找不到构建目录的报错。
已完成Pod的排查方法

你不需要通过exec进入已完成Pod的交互终端,用以下两种方式就能查看clone任务的文件情况:

  • 直接查看clone任务Pod日志:执行kubectl logs run-pipeline-fetch-source-pod,日志里会明确打印代码实际克隆的目标路径、拉取的文件列表。
  • 如果需要查看已完成Pod的实际目录结构,集群开启临时容器特性的前提下,执行kubectl debug -it run-pipeline-fetch-source-pod --image=busybox --target=step-clone -- /bin/sh,就能进入挂载了原任务存储的调试容器,直接查看目录结构。
修复步骤
  1. 替换共享工作空间的存储类型
    emptyDir仅支持单个Pod内的容器共享,跨Task的Pipeline数据共享必须使用PersistentVolumeClaim(PVC)这类持久化共享存储。
    先创建PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: tekton-shared-ws-pvc
  namespace: tekton-pipelines
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

然后修改PipelineRun的workspace配置,替换掉原来的emptyDir配置:

workspaces:
    - name: shared-workspace
      persistentVolumeClaim:
        claimName: tekton-shared-ws-pvc
  1. 校验构建路径配置
    存储配置完成后重新运行流水线,先确认clone任务的代码路径:
  • 如果没有给git-clone任务配置subdirectory参数,代码会直接存放在共享工作空间的根目录,这时候你需要确认拉下来的仓库根目录下是否存在discount-api子目录:如果仓库根目录本身就是discount-api的Gradle配置,直接把build任务的PROJECT_DIR参数值改成.即可;如果确实存在discount-api子目录,保持原有配置即可。
  • 如果需要自定义代码克隆的子目录,可以给clone-repository任务新增参数:
params:
        - name: url
          value: "$(params.repo-url)"
        - name: deleteExisting
          value: "true"
        # 新增以下参数,指定代码克隆到repo-source子目录
        - name: subdirectory
          value: "repo-source"

这种情况下build任务的PROJECT_DIR参数要同步改成./repo-source/discount-api。

验证方法

重新执行PipelineRun后,先看fetch-source对应Pod的日志,确认代码克隆成功,日志会输出代码存储的完整路径;再查看build对应Pod的日志,确认Gradle可以正常识别到构建目录,启动构建流程即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:24:16