Skip to content

Commit

Permalink
Merge pull request #68 from tonistiigi/arm-variant
Browse files Browse the repository at this point in the history
imagetools: keep arm variant
  • Loading branch information
tiborvass authored May 7, 2019
2 parents f38dfd2 + 9b57f9e commit b3fe1a3
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions util/imagetools/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/containerd/containerd/content"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/images"
"github.com/containerd/containerd/platforms"
"github.com/docker/distribution/reference"
"github.com/opencontainers/go-digest"
"github.com/opencontainers/image-spec/specs-go"
Expand Down Expand Up @@ -47,14 +48,11 @@ func (r *Resolver) Combine(ctx context.Context, in string, descs []ocispec.Descr
switch mt {
case images.MediaTypeDockerSchema2Manifest, ocispec.MediaTypeImageManifest:
if descs[i].Platform == nil {
cfg, err := r.loadConfig(ctx, in, dt)
p, err := r.loadPlatform(ctx, in, dt)
if err != nil {
return err
}
descs[i].Platform = &ocispec.Platform{
OS: cfg.OS,
Architecture: cfg.Architecture,
}
descs[i].Platform = p
}
case images.MediaTypeDockerSchema1Manifest:
return errors.Errorf("schema1 manifests are not allowed in manifest lists")
Expand Down Expand Up @@ -168,7 +166,7 @@ func (r *Resolver) Push(ctx context.Context, ref reference.Named, desc ocispec.D
return err
}

func (r *Resolver) loadConfig(ctx context.Context, in string, dt []byte) (*ocispec.Image, error) {
func (r *Resolver) loadPlatform(ctx context.Context, in string, dt []byte) (*ocispec.Platform, error) {
var manifest ocispec.Manifest
if err := json.Unmarshal(dt, &manifest); err != nil {
return nil, errors.WithStack(err)
Expand All @@ -179,12 +177,13 @@ func (r *Resolver) loadConfig(ctx context.Context, in string, dt []byte) (*ocisp
return nil, err
}

var img ocispec.Image
if err := json.Unmarshal(dt, &img); err != nil {
var p ocispec.Platform
if err := json.Unmarshal(dt, &p); err != nil {
return nil, errors.WithStack(err)
}

return &img, nil
p = platforms.Normalize(p)
return &p, nil
}

func detectMediaType(dt []byte) (string, error) {
Expand Down

0 comments on commit b3fe1a3

Please sign in to comment.