github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/cmd/swarmctl/service/flagparser/container.go (about) 1 package flagparser 2 3 import ( 4 "github.com/docker/swarmkit/api" 5 gogotypes "github.com/gogo/protobuf/types" 6 "github.com/spf13/pflag" 7 ) 8 9 func parseContainer(flags *pflag.FlagSet, spec *api.ServiceSpec) error { 10 if flags.Changed("image") { 11 image, err := flags.GetString("image") 12 if err != nil { 13 return err 14 } 15 spec.Task.GetContainer().Image = image 16 } 17 18 if flags.Changed("hostname") { 19 hostname, err := flags.GetString("hostname") 20 if err != nil { 21 return err 22 } 23 spec.Task.GetContainer().Hostname = hostname 24 } 25 26 if flags.Changed("command") { 27 command, err := flags.GetStringSlice("command") 28 if err != nil { 29 return err 30 } 31 spec.Task.GetContainer().Command = command 32 } 33 34 if flags.Changed("args") { 35 args, err := flags.GetStringSlice("args") 36 if err != nil { 37 return err 38 } 39 spec.Task.GetContainer().Args = args 40 } 41 42 if flags.Changed("env") { 43 env, err := flags.GetStringSlice("env") 44 if err != nil { 45 return err 46 } 47 spec.Task.GetContainer().Env = env 48 } 49 50 if flags.Changed("tty") { 51 tty, err := flags.GetBool("tty") 52 if err != nil { 53 return err 54 } 55 56 spec.Task.GetContainer().TTY = tty 57 } 58 59 if flags.Changed("open-stdin") { 60 openStdin, err := flags.GetBool("open-stdin") 61 if err != nil { 62 return err 63 } 64 65 spec.Task.GetContainer().OpenStdin = openStdin 66 } 67 68 if flags.Changed("init") { 69 init, err := flags.GetBool("init") 70 if err != nil { 71 return err 72 } 73 74 spec.Task.GetContainer().Init = &gogotypes.BoolValue{ 75 Value: init, 76 } 77 } 78 79 return nil 80 }