Browse Source

introduce up --attach

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof 4 years ago
parent
commit
e8666b02f3
1 changed files with 7 additions and 2 deletions
  1. 7 2
      cmd/compose/up.go

+ 7 - 2
cmd/compose/up.go

@@ -49,6 +49,7 @@ type upOptions struct {
 	noColor            bool
 	noPrefix           bool
 	attachDependencies bool
+	attach             []string
 }
 
 func (opts upOptions) apply(project *types.Project, services []string) error {
@@ -107,8 +108,8 @@ func upCommand(p *projectOptions, backend api.Service) *cobra.Command {
 			if create.Build && create.noBuild {
 				return fmt.Errorf("--build and --no-build are incompatible")
 			}
-			if up.Detach && (up.attachDependencies || up.cascadeStop) {
-				return fmt.Errorf("--detach cannot be combined with --abort-on-container-exit or --attach-dependencies")
+			if up.Detach && (up.attachDependencies || up.cascadeStop || len(up.attach) > 0) {
+				return fmt.Errorf("--detach cannot be combined with --abort-on-container-exit, --attach or --attach-dependencies")
 			}
 			if create.forceRecreate && create.noRecreate {
 				return fmt.Errorf("--force-recreate and --no-recreate are incompatible")
@@ -143,6 +144,7 @@ func upCommand(p *projectOptions, backend api.Service) *cobra.Command {
 	flags.BoolVarP(&create.noInherit, "renew-anon-volumes", "V", false, "Recreate anonymous volumes instead of retrieving data from the previous containers.")
 	flags.BoolVar(&up.attachDependencies, "attach-dependencies", false, "Attach to dependent containers.")
 	flags.BoolVar(&create.quietPull, "quiet-pull", false, "Pull without printing progress information.")
+	flags.StringArrayVar(&up.attach, "attach", []string{}, "Attach to service output.")
 
 	return upCmd
 }
@@ -165,6 +167,9 @@ func runUp(ctx context.Context, backend api.Service, createOptions createOptions
 	}
 
 	attachTo := services
+	if len(upOptions.attach) > 0 {
+		attachTo = upOptions.attach
+	}
 	if upOptions.attachDependencies {
 		attachTo = project.ServiceNames()
 	}