Browse Source

Merge pull request #10789 from ndeloof/run_no_deps

Apply no-deps before we select and mutate target service
Guillaume Lours 2 years ago
parent
commit
8339269e13
2 changed files with 15 additions and 7 deletions
  1. 7 7
      cmd/compose/run.go
  2. 8 0
      pkg/e2e/compose_run_test.go

+ 7 - 7
cmd/compose/run.go

@@ -63,6 +63,13 @@ type runOptions struct {
 }
 
 func (options runOptions) apply(project *types.Project) error {
+	if options.noDeps {
+		err := project.ForServices([]string{options.Service}, types.IgnoreDependencies)
+		if err != nil {
+			return err
+		}
+	}
+
 	target, err := project.GetService(options.Service)
 	if err != nil {
 		return err
@@ -93,13 +100,6 @@ func (options runOptions) apply(project *types.Project) error {
 		}
 	}
 
-	if options.noDeps {
-		err := project.ForServices([]string{options.Service}, types.IgnoreDependencies)
-		if err != nil {
-			return err
-		}
-	}
-
 	for i, s := range project.Services {
 		if s.Name == options.Service {
 			project.Services[i] = target

+ 8 - 0
pkg/e2e/compose_run_test.go

@@ -136,4 +136,12 @@ func TestLocalComposeRun(t *testing.T) {
 
 		c.RunDockerComposeCmd(t, "-f", "./fixtures/run-test/deps.yaml", "down", "--remove-orphans")
 	})
+
+	t.Run("run without dependencies", func(t *testing.T) {
+		res := c.RunDockerComposeCmd(t, "-f", "./fixtures/run-test/deps.yaml", "run", "--no-deps", "service_a")
+		assert.Assert(t, !strings.Contains(res.Combined(), "shared_dep"), res.Combined())
+		assert.Assert(t, !strings.Contains(res.Combined(), "service_b"), res.Combined())
+
+		c.RunDockerComposeCmd(t, "-f", "./fixtures/run-test/deps.yaml", "down", "--remove-orphans")
+	})
 }