@@ -11,7 +11,6 @@ import (
11
11
12
12
"github.com/containerd/containerd/platforms"
13
13
"github.com/deislabs/cnab-go/bundle"
14
- "github.com/docker/app/internal/packager"
15
14
"github.com/docker/app/types/metadata"
16
15
"github.com/docker/cli/cli"
17
16
"github.com/docker/cli/cli/command"
@@ -29,7 +28,6 @@ import (
29
28
type pushOptions struct {
30
29
registry registryOptions
31
30
tag string
32
- bundle string
33
31
platforms []string
34
32
}
35
33
@@ -46,7 +44,6 @@ func pushCmd(dockerCli command.Cli) *cobra.Command {
46
44
}
47
45
flags := cmd .Flags ()
48
46
flags .StringVarP (& opts .tag , "tag" , "t" , "" , "Target registry reference (default: <name>:<version> from metadata)" )
49
- flags .StringVar (& opts .bundle , "bundle" , "" , "Push a specific bundle" )
50
47
flags .StringSliceVar (& opts .platforms , "platform" , nil , "For multi-arch service images, only push the specified platforms" )
51
48
opts .registry .addFlags (flags )
52
49
return cmd
@@ -55,37 +52,20 @@ func pushCmd(dockerCli command.Cli) *cobra.Command {
55
52
func runPush (dockerCli command.Cli , name string , opts pushOptions ) error {
56
53
defer muteDockerCli (dockerCli )()
57
54
58
- var (
59
- bndl * bundle.Bundle
60
- meta metadata.AppMetadata
61
- )
62
- if opts .bundle == "" {
63
- app , err := packager .Extract (name )
64
- if err != nil {
65
- return err
66
- }
67
- defer app .Cleanup ()
68
- if bndl , err = makeBundleFromApp (dockerCli , app , nil ); err != nil {
69
- return err
70
- }
71
- meta = app .Metadata ()
72
- } else {
73
- if name != "" {
74
- fmt .Fprintf (os .Stderr , "WARNING: ignoring dockerapp at %q, pushing app directly from %q\n " , name , opts .bundle )
75
- }
76
- r , err := os .Open (opts .bundle )
77
- if err != nil {
78
- return err
79
- }
80
- if b , err := bundle .ParseReader (r ); err == nil {
81
- bndl = & b // TODO: PR to change return type of ParseReader
82
- } else {
83
- return err
84
- }
85
- meta = metadata .FromBundle (bndl )
55
+ bundleStore , err := prepareBundleStore ()
56
+ if err != nil {
57
+ return err
58
+ }
59
+
60
+ bndl , _ , err := resolveBundle (dockerCli , bundleStore , name , false , nil )
61
+ if err != nil {
62
+ return err
63
+ }
64
+ if err := bndl .Validate (); err != nil {
65
+ return err
86
66
}
87
67
88
- retag , err := shouldRetagInvocationImage (meta , bndl , opts .tag )
68
+ retag , err := shouldRetagInvocationImage (metadata . FromBundle ( bndl ) , bndl , opts .tag )
89
69
if err != nil {
90
70
return err
91
71
}
0 commit comments