Print services in dependency order

Currently, `compose config --services` outputs the services in
a random/non-deterministic order.

In Compose v1, this was implicitly topologically sorted because
the project services were pre-sorted. With `compose-go`, the
services are unordered, and the `WithServices()` helper can be
used to iterate in dependency order.

Signed-off-by: Milas Bowman <milasb@gmail.com>
This commit is contained in:
Milas Bowman 2021-07-21 10:59:06 -04:00 committed by Milas Bowman
parent 54dc6f9374
commit 1e35245390
1 changed files with 4 additions and 3 deletions

View File

@ -27,6 +27,7 @@ import (
"github.com/cnabio/cnab-to-oci/remotes"
"github.com/compose-spec/compose-go/cli"
"github.com/compose-spec/compose-go/types"
"github.com/distribution/distribution/v3/reference"
cliconfig "github.com/docker/cli/cli/config"
"github.com/opencontainers/go-digest"
@ -153,10 +154,10 @@ func runServices(opts convertOptions) error {
if err != nil {
return err
}
for _, s := range project.Services {
return project.WithServices(project.ServiceNames(), func(s types.ServiceConfig) error {
fmt.Println(s.Name)
}
return nil
return nil
})
}
func runVolumes(opts convertOptions) error {