Skip to content

imjasonh/combine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

combine manifest lists

This tool combines two Docker manifest lists ("multi-arch images") into one that provides all the platforms supported by both manifest lists.

It fails if both images provide the same platforms, or if either isn't a manifest list.

demo

$ go run ./ \
    gcr.io/distroless/static:nonroot \
    mcr.microsoft.com/windows/nanoserver:1809 \
    gcr.io/imjasonh/combined

This combines the distroless image providing linux platform support with an image providing Windows support.

You can check the image's platforms using crane:

$ crane manifest gcr.io/imjasonh/combined | jq '.manifests[].platform'
{
  "architecture": "amd64",
  "os": "linux"
}
{
  "architecture": "arm",
  "os": "linux"
}
{
  "architecture": "arm64",
  "os": "linux"
}
{
  "architecture": "ppc64le",
  "os": "linux"
}
{
  "architecture": "s390x",
  "os": "linux"
}
{
  "architecture": "amd64",
  "os": "windows",
  "os.version": "10.0.17763.1935"
}
{
  "architecture": "arm",
  "os": "windows",
  "os.version": "10.0.17763.1935"
}

The result is an image that provides support for both. This image is intended to be suitable as a base image used with ko to provide multi-arch and multi-OS support for a Go application.

About

combine multi-platform images

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages