From 18ebaf88257d71622e215ce77dd76b3ed56b61bc Mon Sep 17 00:00:00 2001 From: MohammadHasan Akbari Date: Mon, 7 Jul 2025 12:09:40 +0000 Subject: [PATCH 1/2] feat: add --models flag to config command Signed-off-by: MohammadHasan Akbari --- cmd/compose/config.go | 16 ++++++++++++++++ docs/reference/compose_config.md | 1 + docs/reference/docker_compose_config.yaml | 10 ++++++++++ 3 files changed, 27 insertions(+) diff --git a/cmd/compose/config.go b/cmd/compose/config.go index d4d6c01ec46..789ca09369c 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 854eafe2168..e2e773feae5 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 b95c58c279a..3efc922b219 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" From df2cbaf6873210347b820f61ab4d39d9d5766ccc Mon Sep 17 00:00:00 2001 From: MohammadHasan Akbari Date: Wed, 9 Jul 2025 06:51:34 +0000 Subject: [PATCH 2/2] chore: print model attribute instead of model name used in compose file Signed-off-by: MohammadHasan Akbari --- cmd/compose/config.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/compose/config.go b/cmd/compose/config.go index 789ca09369c..4d781c86710 100644 --- a/cmd/compose/config.go +++ b/cmd/compose/config.go @@ -393,8 +393,10 @@ func runModels(ctx context.Context, dockerCli command.Cli, opts configOptions) e if err != nil { return err } - for n := range project.Models { - _, _ = fmt.Fprintln(dockerCli.Out(), n) + for _, model := range project.Models { + if model.Model != "" { + _, _ = fmt.Fprintln(dockerCli.Out(), model.Model) + } } return nil }