Explorar o código

allow for 0 scale/replicas

Signed-off-by: JD Lloret <[email protected]>
JD Lloret %!s(int64=4) %!d(string=hai) anos
pai
achega
c82dd55fd2
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      pkg/compose/convergence.go

+ 6 - 0
pkg/compose/convergence.go

@@ -111,6 +111,9 @@ var mu sync.Mutex
 // updateProject updates project after service converged, so dependent services relying on `service:xx` can refer to actual containers.
 func (c *convergence) updateProject(project *types.Project, service string) {
 	containers := c.getObservedState(service)
+	if len(containers) == 0 {
+		return
+	}
 	container := containers[0]
 
 	// operation is protected by a Mutex so that we can safely update project.Services while running concurrent convergence on services
@@ -557,6 +560,9 @@ func (s *composeService) startService(ctx context.Context, project *types.Projec
 	}
 
 	if len(containers) == 0 {
+		if scale, err := getScale(service); err != nil && scale == 0 {
+			return nil
+		}
 		return fmt.Errorf("no containers to start")
 	}