--- apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: buildah labels: app.kubernetes.io/version: "0.1" annotations: tekton.dev/pipelines.minVersion: "0.12.1" tekton.dev/tags: image-build spec: description: >- Buildah task builds source into a container image and then pushes it to a container registry. Buildah Task builds source into a container image using Project Atomic's Buildah build tool.It uses Buildah's support for building from Dockerfiles, using its buildah bud command.This command executes the directives in the Dockerfile to assemble a container image, then pushes that image to a container registry. params: - name: IMAGE description: Reference of the image buildah will use for build. - name: OUT-IMAGE description: Reference of the image buildah will produce. - name: BUILDER_IMAGE description: The location of the buildah builder image. default: quay.io/buildah/stable:v1.15.1 - name: STORAGE_DRIVER description: Set buildah storage driver default: overlay - name: DOCKERFILE description: Path to the Dockerfile to build. default: ./Dockerfile - name: CONTEXT description: Path to the directory to use as context. default: . - name: TLSVERIFY description: Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry) default: "true" - name: FORMAT description: The format of the built container, oci or docker default: "oci" - name: BUILD_EXTRA_ARGS description: Extra parameters passed for the build command when building images. default: "" - name: INSTALL_AFTER_BUILD description: Extra parameters passed for the build command when building images. default: "" - name: PUSH_EXTRA_ARGS description: Extra parameters passed for the push command when pushing images. type: string default: "" workspaces: - name: source results: - name: IMAGE_DIGEST description: Digest of the image just built. steps: - name: run image: $(params.BUILDER_IMAGE) workingDir: $(workspaces.source.path) script: | image=$(buildah from $(params.IMAGE)) \ && buildah --storage-driver=$(params.STORAGE_DRIVER) run $image -- dnf -y install $(params.INSTALL_AFTER_BUILD) \ && buildah commit --rm $image $(params.IMAGE) volumeMounts: - name: varlibcontainers mountPath: /var/lib/containers securityContext: privileged: true - name: push image: $(params.BUILDER_IMAGE) workingDir: $(workspaces.source.path) script: | buildah --storage-driver=$(params.STORAGE_DRIVER) push \ $(params.PUSH_EXTRA_ARGS) --tls-verify=$(params.TLSVERIFY) \ --digestfile $(workspaces.source.path)/image-digest $(params.IMAGE) \ docker://$(params.OUT-IMAGE) volumeMounts: - name: varlibcontainers mountPath: /var/lib/containers securityContext: privileged: true - name: digest-to-results image: $(params.BUILDER_IMAGE) script: cat $(workspaces.source.path)/image-digest | tee /tekton/results/IMAGE_DIGEST volumes: - name: varlibcontainers emptyDir: {}