docker / docker/buildx

bake: support manifests

Open
#2,105 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/bake area/windows kind/enhancement
Dominant language
Go
Stars
4.5k
Forks
682
Avg merge
2d 14h
Merged PRs (30d)
29

Description

Description

Hi,

I would like to use buildx bake to build windows images.

Images Docker images has the requirement that OS and host matches. In conclusion, I need a docker images for WIndows Server 2019 and Windows Server 2022.

Pushing images to the same tag will create a dedicated manifest of each target and overrides the other targets.

For example


target "windows-nanoserver-ltsc2019" {
  inherits = ["docker-metadata-action"]
  tags = ["app:latest"]

  platforms = ["windows/amd64"]

  target = "windows"
  args = {
    NANOSERVER_VERSION = "ltsc2019"
  }
}

target "windows-nanoserver-ltsc2022" {
  inherits = ["docker-metadata-action"]
  tags = ["app:latest"]

  platforms = ["windows/amd64"]

  target = "windows"
  args = {
    NANOSERVER_VERSION = "ltsc2022"
  }
}

Push targets push images to app:latest, after completion, only one image will be present in the manifest. I would be nice to setup an target which covers the manifest generation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the buildx bake workflow and its handling of push targets, then trace how repeated pushes to the same tag are represented. The issue is done when bake can coordinate the Windows Server 2019 and 2022 targets so the shared tag contains both images in one manifest.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
build-system, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.