Преглед изворни кода

fix: bring up services with deps with --no-deps

Don't fail on not finding dependent services because they were put in the
disabled slice.

Fixes #9427.

Signed-off-by: Nick Sieger <[email protected]>
Nick Sieger пре 3 година
родитељ
комит
cacff89cef
2 измењених фајлова са 11 додато и 1 уклоњено
  1. 5 1
      pkg/compose/create.go
  2. 6 0
      pkg/e2e/start_stop_test.go

+ 5 - 1
pkg/compose/create.go

@@ -183,7 +183,11 @@ func prepareServicesDependsOn(p *types.Project) error {
 		if service.DependsOn == nil {
 			service.DependsOn = make(types.DependsOnConfig)
 		}
-		deps, err := p.GetServices(dependencies...)
+
+		// Verify dependencies exist in the project, whether disabled or not
+		projAllServices := types.Project{}
+		projAllServices.Services = p.AllServices()
+		deps, err := projAllServices.GetServices(dependencies...)
 		if err != nil {
 			return err
 		}

+ 6 - 0
pkg/e2e/start_stop_test.go

@@ -131,6 +131,12 @@ func TestStartStopWithDependencies(t *testing.T) {
 		assert.Assert(t, strings.Contains(res.Combined(), "e2e-start-stop-with-dependencies-foo-1"), res.Combined())
 	})
 
+	t.Run("Up no-deps", func(t *testing.T) {
+		_ = c.RunDockerComposeCmd("--project-name", projectName, "down")
+		res := c.RunDockerComposeCmd("-f", "./fixtures/dependencies/compose.yaml", "--project-name", projectName, "up", "--no-deps", "-d", "foo")
+		assert.Assert(t, strings.Contains(res.Combined(), "Container e2e-start-stop-with-dependencies-foo-1  Started"), res.Combined())
+	})
+
 	t.Run("down", func(t *testing.T) {
 		_ = c.RunDockerComposeCmd("--project-name", projectName, "down")
 	})