Browse Source

run ContainerWait in background so we catch container exit

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof 4 năm trước cách đây
mục cha
commit
9af5ea4b6a
2 tập tin đã thay đổi với 4 bổ sung4 xóa
  1. 1 1
      local/compose/attach.go
  2. 3 3
      local/compose/start.go

+ 1 - 1
local/compose/attach.go

@@ -83,7 +83,7 @@ func (s *composeService) attach(ctx context.Context, project *types.Project, lis
 					s.attachContainer(ctx, container, listener, project) // nolint: errcheck
 					delete(crashed, event.Container)
 
-					s.waitContainer(ctx, container, listener)
+					s.waitContainer(container, listener)
 				}
 				return nil
 			},

+ 3 - 3
local/compose/start.go

@@ -51,14 +51,14 @@ func (s *composeService) Start(ctx context.Context, project *types.Project, opti
 	for _, c := range containers {
 		c := c
 		go func() {
-			s.waitContainer(ctx, c, options.Attach)
+			s.waitContainer(c, options.Attach)
 		}()
 	}
 	return nil
 }
 
-func (s *composeService) waitContainer(ctx context.Context, c moby.Container, listener compose.ContainerEventListener) {
-	statusC, errC := s.apiClient.ContainerWait(ctx, c.ID, container.WaitConditionNotRunning)
+func (s *composeService) waitContainer(c moby.Container, listener compose.ContainerEventListener) {
+	statusC, errC := s.apiClient.ContainerWait(context.Background(), c.ID, container.WaitConditionNotRunning)
 	name := getContainerNameWithoutProject(c)
 	select {
 	case status := <-statusC: