Skip to content

BuildKit detection probe in runtime/docker (design §13.2) #8

Description

@bilby91

Per design/runtime.md §13.2: prefer BuildKit if available, fall back to classic. Today runtime/docker/build.go calls ImageBuild without setting Version, so we get whatever the daemon defaults to.

Plan

  • Probe Info.BuilderVersion (or check for buildkit capabilities) at docker.New()
  • Cache result on *Runtime
  • In BuildImage, set opts.Version = build.BuilderBuildKit when supported
  • Fall back to classic with a warning if a buildkit-only construct (e.g. # syntax=...) appears in the user's Dockerfile but the daemon has no buildkit

Why now

Our generated feature dockerfile starts with # syntax=docker/dockerfile:1.4. Classic ignores this as a comment so today's flow works, but cache mounts and other syntax-1.4 features won't apply unless buildkit is on.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/runtimeRuntime / Docker SDK layerenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions