Skip to content

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

@bilby91

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/runtimeRuntime / Docker SDK layerenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions