|
|
@@ -61,19 +61,19 @@ type configOptions struct {
|
|
|
lockImageDigests bool
|
|
|
}
|
|
|
|
|
|
-func (o *configOptions) ToProject(ctx context.Context, dockerCli command.Cli, services []string, po ...cli.ProjectOptionsFn) (*types.Project, error) {
|
|
|
- po = append(po, o.ToProjectOptions()...)
|
|
|
- project, _, err := o.ProjectOptions.ToProject(ctx, dockerCli, services, po...)
|
|
|
+func (o *configOptions) ToProject(ctx context.Context, dockerCli command.Cli, backend api.Compose, services []string) (*types.Project, error) {
|
|
|
+ project, _, err := o.ProjectOptions.ToProject(ctx, dockerCli, backend, services, o.toProjectOptionsFns()...)
|
|
|
return project, err
|
|
|
}
|
|
|
|
|
|
func (o *configOptions) ToModel(ctx context.Context, dockerCli command.Cli, services []string, po ...cli.ProjectOptionsFn) (map[string]any, error) {
|
|
|
- po = append(po, o.ToProjectOptions()...)
|
|
|
+ po = append(po, o.toProjectOptionsFns()...)
|
|
|
return o.ProjectOptions.ToModel(ctx, dockerCli, services, po...)
|
|
|
}
|
|
|
|
|
|
-func (o *configOptions) ToProjectOptions() []cli.ProjectOptionsFn {
|
|
|
- return []cli.ProjectOptionsFn{
|
|
|
+// toProjectOptionsFns converts config options to cli.ProjectOptionsFn
|
|
|
+func (o *configOptions) toProjectOptionsFns() []cli.ProjectOptionsFn {
|
|
|
+ fns := []cli.ProjectOptionsFn{
|
|
|
cli.WithInterpolation(!o.noInterpolate),
|
|
|
cli.WithResolvedPaths(!o.noResolvePath),
|
|
|
cli.WithNormalization(!o.noNormalize),
|
|
|
@@ -81,6 +81,10 @@ func (o *configOptions) ToProjectOptions() []cli.ProjectOptionsFn {
|
|
|
cli.WithDefaultProfiles(o.Profiles...),
|
|
|
cli.WithDiscardEnvFile,
|
|
|
}
|
|
|
+ if o.noResolveEnv {
|
|
|
+ fns = append(fns, cli.WithoutEnvironmentResolution)
|
|
|
+ }
|
|
|
+ return fns
|
|
|
}
|
|
|
|
|
|
func configCommand(p *ProjectOptions, dockerCli command.Cli) *cobra.Command {
|
|
|
@@ -197,7 +201,12 @@ func runConfig(ctx context.Context, dockerCli command.Cli, opts configOptions, s
|
|
|
}
|
|
|
|
|
|
func runConfigInterpolate(ctx context.Context, dockerCli command.Cli, opts configOptions, services []string) ([]byte, error) {
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, services)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, err := opts.ToProject(ctx, dockerCli, backend, services)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -353,7 +362,12 @@ func runServices(ctx context.Context, dockerCli command.Cli, opts configOptions)
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, _, err := opts.ProjectOptions.ToProject(ctx, dockerCli, backend, nil, cli.WithoutEnvironmentResolution)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -366,7 +380,12 @@ func runServices(ctx context.Context, dockerCli command.Cli, opts configOptions)
|
|
|
}
|
|
|
|
|
|
func runVolumes(ctx context.Context, dockerCli command.Cli, opts configOptions) error {
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, _, err := opts.ProjectOptions.ToProject(ctx, dockerCli, backend, nil, cli.WithoutEnvironmentResolution)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -377,7 +396,12 @@ func runVolumes(ctx context.Context, dockerCli command.Cli, opts configOptions)
|
|
|
}
|
|
|
|
|
|
func runNetworks(ctx context.Context, dockerCli command.Cli, opts configOptions) error {
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, _, err := opts.ProjectOptions.ToProject(ctx, dockerCli, backend, nil, cli.WithoutEnvironmentResolution)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -388,7 +412,12 @@ func runNetworks(ctx context.Context, dockerCli command.Cli, opts configOptions)
|
|
|
}
|
|
|
|
|
|
func runModels(ctx context.Context, dockerCli command.Cli, opts configOptions) error {
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, _, err := opts.ProjectOptions.ToProject(ctx, dockerCli, backend, nil, cli.WithoutEnvironmentResolution)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -405,7 +434,13 @@ func runHash(ctx context.Context, dockerCli command.Cli, opts configOptions) err
|
|
|
if opts.hash != "*" {
|
|
|
services = append(services, strings.Split(opts.hash, ",")...)
|
|
|
}
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution)
|
|
|
+
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, _, err := opts.ProjectOptions.ToProject(ctx, dockerCli, backend, nil, cli.WithoutEnvironmentResolution)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -440,7 +475,13 @@ func runHash(ctx context.Context, dockerCli command.Cli, opts configOptions) err
|
|
|
|
|
|
func runProfiles(ctx context.Context, dockerCli command.Cli, opts configOptions, services []string) error {
|
|
|
set := map[string]struct{}{}
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, services, cli.WithoutEnvironmentResolution)
|
|
|
+
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, err := opts.ToProject(ctx, dockerCli, backend, services)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -461,7 +502,12 @@ func runProfiles(ctx context.Context, dockerCli command.Cli, opts configOptions,
|
|
|
}
|
|
|
|
|
|
func runConfigImages(ctx context.Context, dockerCli command.Cli, opts configOptions, services []string) error {
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, services, cli.WithoutEnvironmentResolution)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, err := opts.ToProject(ctx, dockerCli, backend, services)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -498,7 +544,12 @@ func runVariables(ctx context.Context, dockerCli command.Cli, opts configOptions
|
|
|
}
|
|
|
|
|
|
func runEnvironment(ctx context.Context, dockerCli command.Cli, opts configOptions, services []string) error {
|
|
|
- project, err := opts.ToProject(ctx, dockerCli, services)
|
|
|
+ backend, err := compose.NewComposeService(dockerCli)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ project, err := opts.ToProject(ctx, dockerCli, backend, services)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|