don't block events loop collecting logs

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
Nicolas De Loof 2023-04-24 11:48:21 +02:00 committed by Nicolas De loof
parent eb0632b1d8
commit dec608f3cd

View File

@ -96,18 +96,21 @@ func (s *composeService) Logs(
ID: c.ID, ID: c.ID,
Service: c.Labels[api.ServiceLabel], Service: c.Labels[api.ServiceLabel],
}) })
err := s.logContainers(ctx, consumer, c, api.LogOptions{ eg.Go(func() error {
Follow: options.Follow, err := s.logContainers(ctx, consumer, c, api.LogOptions{
Since: t.Format(time.RFC3339Nano), Follow: options.Follow,
Until: options.Until, Since: t.Format(time.RFC3339Nano),
Tail: options.Tail, Until: options.Until,
Timestamps: options.Timestamps, Tail: options.Tail,
Timestamps: options.Timestamps,
})
if _, ok := err.(errdefs.ErrNotImplemented); ok {
// ignore
return nil
}
return err
}) })
if _, ok := err.(errdefs.ErrNotImplemented); ok { return nil
// ignore
return nil
}
return err
}, func(c types.Container, t time.Time) error { }, func(c types.Container, t time.Time) error {
printer.HandleEvent(api.ContainerEvent{ printer.HandleEvent(api.ContainerEvent{
Type: api.ContainerEventAttach, Type: api.ContainerEventAttach,