From 04edb78ab6ffd019aa485620009a312b3d976765 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Tue, 23 Feb 2021 14:27:24 +0100 Subject: [PATCH] up --no-deps option Signed-off-by: Nicolas De Loof --- cli/cmd/compose/run.go | 11 +++++++++++ cli/cmd/compose/up.go | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/cli/cmd/compose/run.go b/cli/cmd/compose/run.go index ea27368ad..e3a7af70e 100644 --- a/cli/cmd/compose/run.go +++ b/cli/cmd/compose/run.go @@ -45,6 +45,7 @@ type runOptions struct { entrypoint string labels []string name string + noDeps bool } func runCommand(p *projectOptions) *cobra.Command { @@ -75,6 +76,7 @@ func runCommand(p *projectOptions) *cobra.Command { flags.StringVarP(&opts.user, "user", "u", "", "Run as specified username or uid") flags.StringVarP(&opts.workdir, "workdir", "w", "", "Working directory inside the container") flags.StringVar(&opts.entrypoint, "entrypoint", "", "Override the entrypoint of the image") + flags.BoolVar(&opts.noDeps, "no-deps", false, "Don't start linked services.") flags.SetInterspersed(false) return cmd @@ -86,6 +88,15 @@ func runRun(ctx context.Context, opts runOptions) error { return err } + if opts.noDeps { + enabled, err := project.GetService(opts.Service) + if err != nil { + return err + } + project.DisabledServices = append(project.DisabledServices, project.Services...) + project.Services = types.Services{enabled} + } + _, err = progress.Run(ctx, func(ctx context.Context) (string, error) { return "", startDependencies(ctx, c, *project, opts.Service) }) diff --git a/cli/cmd/compose/up.go b/cli/cmd/compose/up.go index d6057b8ca..01736b05a 100644 --- a/cli/cmd/compose/up.go +++ b/cli/cmd/compose/up.go @@ -63,6 +63,7 @@ type upOptions struct { noPrefix bool timeChanged bool timeout int + noDeps bool } func (o upOptions) recreateStrategy() string { @@ -122,6 +123,7 @@ func upCommand(p *projectOptions, contextType string) *cobra.Command { flags.BoolVar(&opts.cascadeStop, "abort-on-container-exit", false, "Stops all containers if any container was stopped. Incompatible with -d") flags.StringVar(&opts.exitCodeFrom, "exit-code-from", "", "Return the exit code of the selected service container. Implies --abort-on-container-exit") flags.IntVarP(&opts.timeout, "timeout", "t", 10, "Use this timeout in seconds for container shutdown when attached or when containers are already running.") + flags.BoolVar(&opts.noDeps, "no-deps", false, "Don't start linked services.") } return upCmd @@ -152,6 +154,15 @@ func runCreateStart(ctx context.Context, opts upOptions, services []string) erro return err } + if opts.noDeps { + enabled, err := project.GetServices(services) + if err != nil { + return err + } + project.DisabledServices = append(project.DisabledServices, project.Services...) + project.Services = enabled + } + err = applyScaleOpt(opts.scale, project) if err != nil { return err