github.com/moby/docker@v26.1.3+incompatible/internal/testutils/specialimage/configtarget.go (about)

     1  package specialimage
     2  
     3  import (
     4  	"github.com/containerd/containerd/platforms"
     5  	"github.com/distribution/reference"
     6  	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
     7  )
     8  
     9  // ConfigTarget creates an image index with an image config being used as an
    10  // image target instead of a manifest or index.
    11  func ConfigTarget(dir string) (*ocispec.Index, error) {
    12  	const imageRef = "config:latest"
    13  
    14  	ref, err := reference.ParseNormalizedNamed(imageRef)
    15  	if err != nil {
    16  		return nil, err
    17  	}
    18  
    19  	desc, err := writeJsonBlob(dir, ocispec.MediaTypeImageConfig, ocispec.Image{
    20  		Platform: platforms.MustParse("linux/amd64"),
    21  		Config: ocispec.ImageConfig{
    22  			Env: []string{"FOO=BAR"},
    23  		},
    24  	})
    25  	if err != nil {
    26  		return nil, err
    27  	}
    28  	desc.Annotations = map[string]string{
    29  		"io.containerd.image.name": ref.String(),
    30  	}
    31  
    32  	return ociImage(dir, ref, desc)
    33  }