diff --git a/command/service/list.go b/command/service/list.go index ca3e741fab..67c120da58 100644 --- a/command/service/list.go +++ b/command/service/list.go @@ -45,7 +45,9 @@ func runList(dockerCli *command.DockerCli, opts listOptions) error { ctx := context.Background() client := dockerCli.Client() - services, err := client.ServiceList(ctx, types.ServiceListOptions{Filters: opts.filter.Value()}) + serviceFilters := opts.filter.Value() + serviceFilters.Add("runtimes", string(swarm.RuntimeContainer)) + services, err := client.ServiceList(ctx, types.ServiceListOptions{Filters: serviceFilters}) if err != nil { return err } diff --git a/command/service/ps.go b/command/service/ps.go index 3a53a545d0..f9720bd3e6 100644 --- a/command/service/ps.go +++ b/command/service/ps.go @@ -7,6 +7,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" + swarmtypes "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/cli" "github.com/docker/docker/cli/command" "github.com/docker/docker/cli/command/formatter" @@ -58,8 +59,11 @@ func runPS(dockerCli *command.DockerCli, opts psOptions) error { serviceIDFilter := filters.NewArgs() serviceNameFilter := filters.NewArgs() for _, service := range opts.services { + // default to container runtime serviceIDFilter.Add("id", service) + serviceIDFilter.Add("runtimes", string(swarmtypes.RuntimeContainer)) serviceNameFilter.Add("name", service) + serviceNameFilter.Add("runtimes", string(swarmtypes.RuntimeContainer)) } serviceByIDList, err := client.ServiceList(ctx, types.ServiceListOptions{Filters: serviceIDFilter}) if err != nil { diff --git a/command/stack/common.go b/command/stack/common.go index 72719f94fc..90bc19682e 100644 --- a/command/stack/common.go +++ b/command/stack/common.go @@ -17,6 +17,12 @@ func getStackFilter(namespace string) filters.Args { return filter } +func getServiceFilter(namespace string) filters.Args { + filter := getStackFilter(namespace) + filter.Add("runtimes", string(swarm.RuntimeContainer)) + return filter +} + func getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args { filter := opt.Value() filter.Add("label", convert.LabelNamespace+"="+namespace) @@ -36,7 +42,7 @@ func getServices( ) ([]swarm.Service, error) { return apiclient.ServiceList( ctx, - types.ServiceListOptions{Filters: getStackFilter(namespace)}) + types.ServiceListOptions{Filters: getServiceFilter(namespace)}) } func getStackNetworks(