From 6233fffea6b96f5b52e32ce5d1c73899f4e07016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 24 Oct 2023 12:08:38 -0600 Subject: [PATCH] Add shutdownHook to send sigterm to ryuk Currently, `Ryuk` container finishes after around 10s. This commit register a shutdown hook which will send a sigterm to the Ryuk container when JVM is terminating causing Ryuk to finish sooner. --- .../testcontainers/utility/RyukResourceReaper.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/core/src/main/java/org/testcontainers/utility/RyukResourceReaper.java b/core/src/main/java/org/testcontainers/utility/RyukResourceReaper.java index 999b1cbbffb..7e1b7802fb0 100644 --- a/core/src/main/java/org/testcontainers/utility/RyukResourceReaper.java +++ b/core/src/main/java/org/testcontainers/utility/RyukResourceReaper.java @@ -77,6 +77,19 @@ private synchronized void maybeStart() { ryukContainer.start(); + Runtime + .getRuntime() + .addShutdownHook( + new Thread( + DockerClientFactory.TESTCONTAINERS_THREAD_GROUP, + () -> { + this.dockerClient.killContainerCmd(this.ryukContainer.getContainerId()) + .withSignal("SIGTERM") + .exec(); + } + ) + ); + CountDownLatch ryukScheduledLatch = new CountDownLatch(1); String host = ryukContainer.getHost();