Browse Source

feat: add --networks flag to config command

Signed-off-by: MohammadHasan Akbari <[email protected]>
MohammadHasan Akbari 5 months ago
parent
commit
66524e7728

+ 16 - 0
cmd/compose/config.go

@@ -50,6 +50,7 @@ type configOptions struct {
 	noResolveEnv        bool
 	services            bool
 	volumes             bool
+	networks			bool
 	profiles            bool
 	images              bool
 	hash                string
@@ -111,6 +112,9 @@ func configCommand(p *ProjectOptions, dockerCli command.Cli) *cobra.Command {
 			if opts.volumes {
 				return runVolumes(ctx, dockerCli, opts)
 			}
+			if opts.networks {
+				return runNetworks(ctx, dockerCli, opts)
+			}
 			if opts.hash != "" {
 				return runHash(ctx, dockerCli, opts)
 			}
@@ -147,6 +151,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.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.")
@@ -367,6 +372,17 @@ func runVolumes(ctx context.Context, dockerCli command.Cli, opts configOptions)
 	return nil
 }
 
+func runNetworks(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.Networks {
+		_, _ = fmt.Fprintln(dockerCli.Out(), n)
+	}
+	return nil
+}
+
 func runHash(ctx context.Context, dockerCli command.Cli, opts configOptions) error {
 	var services []string
 	if opts.hash != "*" {

+ 1 - 0
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                                |
+| `--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                                             |
 | `--no-interpolate`        | `bool`   |         | Don't interpolate environment variables                                     |

+ 10 - 0
docs/reference/docker_compose_config.yaml

@@ -56,6 +56,16 @@ options:
       experimentalcli: false
       kubernetes: false
       swarm: false
+    - option: networks
+      value_type: bool
+      default_value: "false"
+      description: Print the network names, one per line.
+      deprecated: false
+      hidden: false
+      experimental: false
+      experimentalcli: false
+      kubernetes: false
+      swarm: false
     - option: no-consistency
       value_type: bool
       default_value: "false"