github.1git.de/docker/cli@v26.1.3+incompatible/cli/command/stack/deploy.go (about) 1 package stack 2 3 import ( 4 "github.com/docker/cli/cli" 5 "github.com/docker/cli/cli/command" 6 "github.com/docker/cli/cli/command/stack/loader" 7 "github.com/docker/cli/cli/command/stack/options" 8 "github.com/docker/cli/cli/command/stack/swarm" 9 "github.com/spf13/cobra" 10 ) 11 12 func newDeployCommand(dockerCli command.Cli) *cobra.Command { 13 var opts options.Deploy 14 15 cmd := &cobra.Command{ 16 Use: "deploy [OPTIONS] STACK", 17 Aliases: []string{"up"}, 18 Short: "Deploy a new stack or update an existing stack", 19 Args: cli.ExactArgs(1), 20 RunE: func(cmd *cobra.Command, args []string) error { 21 opts.Namespace = args[0] 22 if err := validateStackName(opts.Namespace); err != nil { 23 return err 24 } 25 config, err := loader.LoadComposefile(dockerCli, opts) 26 if err != nil { 27 return err 28 } 29 return swarm.RunDeploy(cmd.Context(), dockerCli, cmd.Flags(), &opts, config) 30 }, 31 ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { 32 return completeNames(dockerCli)(cmd, args, toComplete) 33 }, 34 } 35 36 flags := cmd.Flags() 37 flags.StringSliceVarP(&opts.Composefiles, "compose-file", "c", []string{}, `Path to a Compose file, or "-" to read from stdin`) 38 flags.SetAnnotation("compose-file", "version", []string{"1.25"}) 39 flags.BoolVar(&opts.SendRegistryAuth, "with-registry-auth", false, "Send registry authentication details to Swarm agents") 40 flags.BoolVar(&opts.Prune, "prune", false, "Prune services that are no longer referenced") 41 flags.SetAnnotation("prune", "version", []string{"1.27"}) 42 flags.StringVar(&opts.ResolveImage, "resolve-image", swarm.ResolveImageAlways, 43 `Query the registry to resolve image digest and supported platforms ("`+swarm.ResolveImageAlways+`", "`+swarm.ResolveImageChanged+`", "`+swarm.ResolveImageNever+`")`) 44 flags.SetAnnotation("resolve-image", "version", []string{"1.30"}) 45 flags.BoolVarP(&opts.Detach, "detach", "d", true, "Exit immediately instead of waiting for the stack services to converge") 46 flags.BoolVarP(&opts.Quiet, "quiet", "q", false, "Suppress progress output") 47 return cmd 48 }