From f0a43e72cd32864e056d9fc01a0409edfcfcc149 Mon Sep 17 00:00:00 2001 From: Derek McGowan Date: Tue, 7 Feb 2017 17:01:43 -0800 Subject: [PATCH] Update layer apply to use containerd archive Signed-off-by: Derek McGowan (github: dmcgowan) --- cmd/dist/apply.go | 11 +++++++++-- rootfs/apply.go | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cmd/dist/apply.go b/cmd/dist/apply.go index bb5858c..3ebf558 100644 --- a/cmd/dist/apply.go +++ b/cmd/dist/apply.go @@ -4,8 +4,9 @@ import ( contextpkg "context" "os" + "github.com/docker/containerd/archive" "github.com/docker/containerd/log" - "github.com/docker/docker/pkg/archive" + dockerarchive "github.com/docker/docker/pkg/archive" "github.com/urfave/cli" ) @@ -21,7 +22,13 @@ var applyCommand = cli.Command{ ) log.G(ctx).Info("applying layer from stdin") - if _, err := archive.ApplyLayer(dir, os.Stdin); err != nil { + + rd, err := dockerarchive.DecompressStream(os.Stdin) + if err != nil { + return err + } + + if _, err := archive.ApplyDiffTar(ctx, dir, rd); err != nil { return err } diff --git a/rootfs/apply.go b/rootfs/apply.go index 5824384..a2a2600 100644 --- a/rootfs/apply.go +++ b/rootfs/apply.go @@ -1,13 +1,15 @@ package rootfs import ( + "context" "io" "io/ioutil" "github.com/docker/containerd" + "github.com/docker/containerd/archive" "github.com/docker/containerd/log" "github.com/docker/containerd/snapshot" - "github.com/docker/docker/pkg/archive" + dockerarchive "github.com/docker/docker/pkg/archive" "github.com/opencontainers/go-digest" "github.com/opencontainers/image-spec/identity" ocispec "github.com/opencontainers/image-spec/specs-go/v1" @@ -56,7 +58,12 @@ func ApplyLayer(snapshots snapshot.Snapshotter, mounter Mounter, rd io.Reader, p } defer mounter.Unmount(mounts...) - if _, err := archive.ApplyLayer(key, rd); err != nil { + rd, err = dockerarchive.DecompressStream(rd) + if err != nil { + return "", err + } + + if _, err := archive.ApplyDiffTar(context.Background(), key, rd); err != nil { return "", err }