diff --git a/cmd/compose/run.go b/cmd/compose/run.go index 3ae8b9d95..2bf126fef 100644 --- a/cmd/compose/run.go +++ b/cmd/compose/run.go @@ -282,7 +282,7 @@ func runRun(ctx context.Context, backend api.Service, project *types.Project, op var buildForRun *api.BuildOptions if !createOpts.noBuild { - bo, err := buildOpts.toAPIBuildOptions(project.ServiceNames()) + bo, err := buildOpts.toAPIBuildOptions(nil) if err != nil { return err } diff --git a/pkg/compose/run.go b/pkg/compose/run.go index 37a9c250d..a16b6b22d 100644 --- a/pkg/compose/run.go +++ b/pkg/compose/run.go @@ -176,24 +176,9 @@ func applyRunOptions(project *types.Project, service *types.ServiceConfig, opts } func (s *composeService) startDependencies(ctx context.Context, project *types.Project, options api.RunOptions) error { - dependencies := types.Services{} - var requestedService types.ServiceConfig - for name, service := range project.Services { - if name != options.Service { - dependencies[name] = service - } else { - requestedService = service - } - } + project = project.WithServicesDisabled(options.Service) - if len(dependencies) > 0 { - project.Services = dependencies - project.DisabledServices[options.Service] = requestedService - } - project.DisabledServices[options.Service] = requestedService - delete(project.Services, options.Service) - - err = s.Create(ctx, project, api.CreateOptions{ + err := s.Create(ctx, project, api.CreateOptions{ Build: options.Build, IgnoreOrphans: options.IgnoreOrphans, RemoveOrphans: options.RemoveOrphans, @@ -203,7 +188,7 @@ func (s *composeService) startDependencies(ctx context.Context, project *types.P return err } - if len(dependencies) > 0 { + if len(project.Services) > 0 { return s.Start(ctx, project.Name, api.StartOptions{ Project: project, })