diff --git a/pkg/compose/logs.go b/pkg/compose/logs.go index b3b44d53e11..b4479d7585f 100644 --- a/pkg/compose/logs.go +++ b/pkg/compose/logs.go @@ -104,6 +104,7 @@ func (s *composeService) Logs( } }) eg.Go(func() error { + // pass ctx so monitor will immediately stop on SIGINT return monitor.Start(ctx) }) } diff --git a/pkg/compose/monitor.go b/pkg/compose/monitor.go index 6952b4e6816..b0f9cc0affd 100644 --- a/pkg/compose/monitor.go +++ b/pkg/compose/monitor.go @@ -79,7 +79,7 @@ func (c *monitor) Start(ctx context.Context) error { } restarting := utils.Set[string]{} - evtCh, errCh := c.api.Events(context.Background(), events.ListOptions{ + evtCh, errCh := c.api.Events(ctx, events.ListOptions{ Filters: filters.NewArgs( filters.Arg("type", "container"), projectFilter(c.project)), @@ -89,6 +89,8 @@ func (c *monitor) Start(ctx context.Context) error { return nil } select { + case <-ctx.Done(): + return nil case err := <-errCh: return err case event := <-evtCh: