From 3ca8cf49948a713758ec1862ab44de15bac839bf Mon Sep 17 00:00:00 2001 From: Wu Sheng Date: Thu, 16 Apr 2026 15:11:02 +0800 Subject: [PATCH] fix: disable Ryuk reaper when cleanup.on is never After migrating to testcontainers-go, the Ryuk reaper sidecar automatically removes all containers when the e2e process exits, which makes cleanup.on: never ineffective in compose mode. Co-Authored-By: Claude Opus 4.6 (1M context) --- internal/components/setup/compose.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/components/setup/compose.go b/internal/components/setup/compose.go index 52acd98..f43d2fd 100644 --- a/internal/components/setup/compose.go +++ b/internal/components/setup/compose.go @@ -32,6 +32,7 @@ import ( "gopkg.in/yaml.v2" "github.com/apache/skywalking-infra-e2e/internal/config" + "github.com/apache/skywalking-infra-e2e/internal/constant" "github.com/apache/skywalking-infra-e2e/internal/logger" "github.com/apache/skywalking-infra-e2e/internal/util" ) @@ -55,6 +56,13 @@ func ComposeSetup(e2eConfig *config.E2EConfig) error { util.ExportEnvVars(profilePath) } + // Disable Ryuk reaper when cleanup.on is "never" so containers survive process exit. + if e2eConfig.Cleanup.On == constant.CleanUpNever { + if err := os.Setenv("TESTCONTAINERS_RYUK_DISABLED", "true"); err != nil { + return fmt.Errorf("failed to disable Ryuk reaper: %v", err) + } + } + // create compose stack identifier := util.GetIdentity() stack, err := compose.NewDockerComposeWith(