diff --git a/cmd/compose/convert.go b/cmd/compose/convert.go index cb66ebba3..0ad85fa19 100644 --- a/cmd/compose/convert.go +++ b/cmd/compose/convert.go @@ -44,6 +44,7 @@ type convertOptions struct { quiet bool resolveImageDigests bool noInterpolate bool + noNormalize bool services bool volumes bool profiles bool @@ -66,6 +67,9 @@ func convertCommand(p *projectOptions, backend api.Service) *cobra.Command { } os.Stdout = devnull } + if p.Compatibility { + opts.noNormalize = true + } return nil }), RunE: Adapt(func(ctx context.Context, args []string) error { @@ -91,6 +95,7 @@ func convertCommand(p *projectOptions, backend api.Service) *cobra.Command { flags.BoolVar(&opts.resolveImageDigests, "resolve-image-digests", false, "Pin image tags to digests.") flags.BoolVarP(&opts.quiet, "quiet", "q", false, "Only validate the configuration, don't print anything.") flags.BoolVar(&opts.noInterpolate, "no-interpolate", false, "Don't interpolate environment variables.") + flags.BoolVar(&opts.noNormalize, "no-normalize", false, "Don't normalize compose model.") 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.") @@ -103,7 +108,10 @@ func convertCommand(p *projectOptions, backend api.Service) *cobra.Command { func runConvert(ctx context.Context, backend api.Service, opts convertOptions, services []string) error { var json []byte - project, err := opts.toProject(services, cli.WithInterpolation(!opts.noInterpolate), cli.WithResolvedPaths(true)) + project, err := opts.toProject(services, + cli.WithInterpolation(!opts.noInterpolate), + cli.WithResolvedPaths(true), + cli.WithNormalization(!opts.noNormalize)) if err != nil { return err }