diff --git a/pkg/compose/logs.go b/pkg/compose/logs.go index e33c21c7756..eb3d2de7f77 100644 --- a/pkg/compose/logs.go +++ b/pkg/compose/logs.go @@ -22,7 +22,9 @@ import ( "strings" "github.com/docker/docker/api/types" + "github.com/docker/docker/errdefs" "github.com/docker/docker/pkg/stdcopy" + "github.com/sirupsen/logrus" "golang.org/x/sync/errgroup" "github.com/docker/compose/v2/pkg/api" @@ -59,7 +61,12 @@ func (s *composeService) Logs( for _, c := range containers { c := c eg.Go(func() error { - return s.logContainers(ctx, consumer, c, options) + err := s.logContainers(ctx, consumer, c, options) + if _, ok := err.(errdefs.ErrNotImplemented); ok { + logrus.Warnf("Can't retrieve logs for %q: %s", getCanonicalContainerName(c), err.Error()) + return nil + } + return err }) } @@ -85,7 +92,10 @@ func (s *composeService) Logs( Container: getContainerNameWithoutProject(c), Service: c.Labels[api.ServiceLabel], }) - return s.logContainers(ctx, consumer, c, options) + eg.Go(func() error { + return s.logContainers(ctx, consumer, c, options) + }) + return nil }) printer.Stop() return err