diff --git a/libpod/container_log.go b/libpod/container_log.go index c49b54eb16..e33ede5dd1 100644 --- a/libpod/container_log.go +++ b/libpod/container_log.go @@ -72,6 +72,14 @@ func (c *Container) readFromLogFile(ctx context.Context, options *logs.LogOption } } } + go func() { + if options.Until.After(time.Now()) { + time.Sleep(time.Until(options.Until)) + if err := t.Stop(); err != nil { + logrus.Errorf("Stopping logger: %v", err) + } + } + }() go func() { defer options.WaitGroup.Done() diff --git a/test/system/035-logs.bats b/test/system/035-logs.bats index 6f253a29c7..8f378054af 100644 --- a/test/system/035-logs.bats +++ b/test/system/035-logs.bats @@ -373,6 +373,10 @@ $content" "logs --until -f on running container works" run_podman ${events_backend} rm -t 0 -f $cname } +@test "podman logs - --until --follow k8s-file" { + _log_test_follow_until k8s-file +} + @test "podman logs - --until --follow journald" { # We can't use journald on RHEL as rootless: rhbz#1895105 skip_if_journald_unavailable