1

我正在我的 Kind 集群上创建一个 Tekton 管道。我有一个Taskstep一个使用 buildah 构建容器映像的地方。现在我想验证容器镜像是否真的被创建了。

所以在接下来step,我尝试“查看”我的容器图像(使用ls)。我已经将一个emptyDir卷安装到Task,并且我的安装路径是/var/lib/containers(默认情况下 buildah 放置其工件的位置)。我试过ls /var/lib/containers在下面做一个step,但我得到了no such file or directory回应。我想这是因为第二个step发生在一个新容器中?但我认为该卷存在于我的所有容器中,用于这个特定的Task. 如您所见,我对它的工作原理不是很了解。

那么有什么好的方法来验证我的容器镜像是真的创建的吗?例如,我可以在Task完成后阻止 pod 终止,以便我可以进入容器并浏览文件系统或其他东西吗?

这是Task定义:

---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: build-and-deploy
spec:
  params:
    - name: contextDir
      default: .
    - name: destinationImage
      default: "$(outputs.resources.app-image.url)"
    - name: dockerFile
      default: Dockerfile
  resources:
    inputs:
      - name: repo
        type: git
    outputs:
      - name: app-image
        type: image
  steps:
    - name: build-image
      image: quay.io/buildah/stable
      workingDir: "/workspace/repo/$(inputs.params.contextDir)"
      command: ["buildah", "bud", "--layers", "-f", "$(inputs.params.dockerFile)", "-t", "$(inputs.params.destinationImage)", "."]
      volumeMounts:
        - name: varlibcontainers
          mountPath: /var/lib/containers
      securityContext:
        privileged: true
        runAsUser: 0
  volumes:
    - name: varlibcontainers
      emptyDir: {}
        
4

1 回答 1

0

那么有什么好的方法来验证我的容器镜像是真的创建的吗?

您似乎已经创建了一个自定义 Buildah 任务。我建议使用Tekton Catalog 中的 Buildah-task,或者至少将其用作灵感

目录中的 Buildah-task 使用了buildah 在推送时编写的摘要文件(我猜你想推送它以便部署它?)然后任务有一个返回图像摘要的任务结果- 如果有任何步骤失败该步骤显示为失败,您可以在例如仪表板或使用 cli 客户端中看到它。

于 2021-02-02T17:07:12.807 回答