@@ -94,6 +94,8 @@ func newUpdateCommand(dockerCli command.Cli) *cobra.Command {
9494 flags .SetAnnotation (flagDNSSearchAdd , "version" , []string {"1.25" })
9595 flags .Var (& options .hosts , flagHostAdd , "Add a custom host-to-IP mapping (host:ip)" )
9696 flags .SetAnnotation (flagHostAdd , "version" , []string {"1.25" })
97+ flags .BoolVar (& options .init , flagInit , false , "Use an init inside each service container to forward signals and reap processes" )
98+ flags .SetAnnotation (flagInit , "version" , []string {"1.37" })
9799
98100 // Add needs parsing, Remove only needs the key
99101 flags .Var (newListOptsVar (), flagGenericResourcesRemove , "Remove a Generic resource" )
@@ -235,6 +237,12 @@ func runUpdate(dockerCli command.Cli, flags *pflag.FlagSet, options *serviceOpti
235237
236238// nolint: gocyclo
237239func updateService (ctx context.Context , apiClient client.NetworkAPIClient , flags * pflag.FlagSet , spec * swarm.ServiceSpec ) error {
240+ updateBoolPtr := func (flag string , field * * bool ) {
241+ if flags .Changed (flag ) {
242+ b , _ := flags .GetBool (flag )
243+ * field = & b
244+ }
245+ }
238246 updateString := func (flag string , field * string ) {
239247 if flags .Changed (flag ) {
240248 * field , _ = flags .GetString (flag )
@@ -306,6 +314,7 @@ func updateService(ctx context.Context, apiClient client.NetworkAPIClient, flags
306314 updateString (flagWorkdir , & cspec .Dir )
307315 updateString (flagUser , & cspec .User )
308316 updateString (flagHostname , & cspec .Hostname )
317+ updateBoolPtr (flagInit , & cspec .Init )
309318 if err := updateIsolation (flagIsolation , & cspec .Isolation ); err != nil {
310319 return err
311320 }
0 commit comments