diff --git a/cmd/compose/config.go b/cmd/compose/config.go index d4d6c01ec..789ca0936 100644 --- a/cmd/compose/config.go +++ b/cmd/compose/config.go @@ -51,6 +51,7 @@ type configOptions struct { services bool volumes bool networks bool + models bool profiles bool images bool hash string @@ -115,6 +116,9 @@ func configCommand(p *ProjectOptions, dockerCli command.Cli) *cobra.Command { if opts.networks { return runNetworks(ctx, dockerCli, opts) } + if opts.models { + return runModels(ctx, dockerCli, opts) + } if opts.hash != "" { return runHash(ctx, dockerCli, opts) } @@ -152,6 +156,7 @@ func configCommand(p *ProjectOptions, dockerCli command.Cli) *cobra.Command { flags.BoolVar(&opts.services, "services", false, "Print the service names, one per line.") flags.BoolVar(&opts.volumes, "volumes", false, "Print the volume names, one per line.") flags.BoolVar(&opts.networks, "networks", false, "Print the network names, one per line.") + flags.BoolVar(&opts.models, "models", false, "Print the model names, one per line.") flags.BoolVar(&opts.profiles, "profiles", false, "Print the profile names, one per line.") flags.BoolVar(&opts.images, "images", false, "Print the image names, one per line.") flags.StringVar(&opts.hash, "hash", "", "Print the service config hash, one per line.") @@ -383,6 +388,17 @@ func runNetworks(ctx context.Context, dockerCli command.Cli, opts configOptions) return nil } +func runModels(ctx context.Context, dockerCli command.Cli, opts configOptions) error { + project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution) + if err != nil { + return err + } + for n := range project.Models { + _, _ = fmt.Fprintln(dockerCli.Out(), n) + } + return nil +} + func runHash(ctx context.Context, dockerCli command.Cli, opts configOptions) error { var services []string if opts.hash != "*" { diff --git a/docs/reference/compose_config.md b/docs/reference/compose_config.md index 854eafe21..e2e773fea 100644 --- a/docs/reference/compose_config.md +++ b/docs/reference/compose_config.md @@ -15,6 +15,7 @@ the canonical format. | `--hash` | `string` | | Print the service config hash, one per line. | | `--images` | `bool` | | Print the image names, one per line. | | `--lock-image-digests` | `bool` | | Produces an override file with image digests | +| `--models` | `bool` | | Print the model names, one per line. | | `--networks` | `bool` | | Print the network names, one per line. | | `--no-consistency` | `bool` | | Don't check model consistency - warning: may produce invalid Compose output | | `--no-env-resolution` | `bool` | | Don't resolve service env files | diff --git a/docs/reference/docker_compose_config.yaml b/docs/reference/docker_compose_config.yaml index b95c58c27..3efc922b2 100644 --- a/docs/reference/docker_compose_config.yaml +++ b/docs/reference/docker_compose_config.yaml @@ -56,6 +56,16 @@ options: experimentalcli: false kubernetes: false swarm: false + - option: models + value_type: bool + default_value: "false" + description: Print the model names, one per line. + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: networks value_type: bool default_value: "false"