apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: buildkit labels: app.kubernetes.io/version: "0.1" annotations: tekton.dev/categories: Image Build tekton.dev/pipelines.minVersion: "0.12.1" tekton.dev/tags: image-build tekton.dev/displayName: "Build a docker image with buildkit." tekton.dev/platforms: "linux/amd64" container.apparmor.security.beta.kubernetes.io/step-build-and-push: unconfined spec: description: >- This task will build a docker image using buildkit and push the result to an image registry. workspaces: - name: source mountPath: /source readOnly: true - name: dockerconfig description: Includes credentials for the docker image registry. optional: true mountPath: /home/user/.docker params: - name: OUTPUT type: string description: Argument to output flag for `buildctl build` # Examples: # type=image,name=harbor.mydomain.example/private/foo:3.45,push=true,compression=zstd,compression-level=22 # type=image,"name=harbor.mydomain.example/private/foo:latest,harbor.mydomain.example/private/foo:3.45",push=true,compression=zstd,compression-level=22,oci-mediatypes=true - name: CONTEXT type: string description: Path to the docker context. default: "." - name: DOCKERFILE type: string description: Path to the Dockerfile relative to the context. default: "Dockerfile" - name: BUILDER_IMAGE type: string description: Docker image containing BuildKit. default: "moby/buildkit:v0.17.0-rc1-rootless" # or v0.16.0-rootless - name: EXTRA_ARGS type: array description: Arguments passed to the build command. default: [] - name: BUILDKITD_TOML type: string description: Contents of buildkitd.toml. default: "" results: - name: IMAGE_DIGEST description: Digest of the docker image. - name: IMAGE_URL description: Full URL to the docker image. type: array volumes: - name: buildkitd emptyDir: {} - name: buildkitd-toml emptyDir: {} - name: metadata-out emptyDir: {} steps: - name: write-config image: $(params.BUILDER_IMAGE) workingDir: "$(workspaces.source.path)" script: | #!/usr/bin/env sh set -euo pipefail tee /home/user/.config/buildkit/buildkitd.toml < /home/user/.config/buildkit/entrypoint.sh <