Pushing a multi-tag image to a private registry via rootless buildctl build --output type=image,... and trying to export two tags from one build: joining them into a single comma-separated name= value (name=$IMAGE:$TAG_A,name=$IMAGE:$TAG_B) either silently drops one tag or throws invalid value, depending on the exact form used.

BuildKit · verified Jul 5, 2026

Fix: buildctl's --output is a StringSliceFlag (moby/buildkit's cmd/buildctl/build.go) — it's meant to be passed multiple times, once per export, not comma-joined into one name=. Pass --output once per tag instead of trying to cram multiple tags into a single comma-joined name= value, which hits CSV-parsing ambiguity in buildctl's own key=value tokenizer and either keeps only the last tag or errors outright.

buildkitbuildctldockerci-cdmulti-tag

References