Skip to content

Commit eb242a5

Browse files
authored
Add configuration for TESTCONTAINERS_RYUK_RECONNECTION_TIMEOUT (#1168)
1 parent 8767ccf commit eb242a5

File tree

3 files changed

+27
-13
lines changed

3 files changed

+27
-13
lines changed

docs/configuration.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,17 @@ Configuration of the Docker daemon:
3232

3333
Configuration of Testcontainers and its behaviours:
3434

35-
| Variable | Example | Description |
36-
| ------------------------------------- |----------------------------| -------------------------------------------- |
37-
| TESTCONTAINERS_HOST_OVERRIDE | tcp://docker:2375 | Docker's host on which ports are exposed |
38-
| TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE | /var/run/docker.sock | Path to Docker's socket used by ryuk |
39-
| TESTCONTAINERS_RYUK_PRIVILEGED | true | Run ryuk as a privileged container |
40-
| TESTCONTAINERS_RYUK_DISABLED | true | Disable ryuk |
41-
| TESTCONTAINERS_RYUK_PORT | 65515 | Set ryuk host port (not recommended) |
42-
| TESTCONTAINERS_SSHD_PORT | 65515 | Set SSHd host port (not recommended) |
43-
| TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX | mycompany.com/registry | Set default image registry |
44-
| RYUK_CONTAINER_IMAGE | testcontainers/ryuk:0.14.0 | Custom image for ryuk |
45-
| SSHD_CONTAINER_IMAGE | testcontainers/sshd:1.3.0 | Custom image for SSHd |
46-
| TESTCONTAINERS_REUSE_ENABLE | true | Enable reusable containers |
47-
| TESTCONTAINERS_RYUK_VERBOSE | true | Sets RYUK_VERBOSE env var in ryuk container |
35+
| Variable | Example | Description |
36+
|------------------------------------------|----------------------------|----------------------------------------------------------|
37+
| TESTCONTAINERS_HOST_OVERRIDE | tcp://docker:2375 | Docker's host on which ports are exposed |
38+
| TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE | /var/run/docker.sock | Path to Docker's socket used by ryuk |
39+
| TESTCONTAINERS_RYUK_PRIVILEGED | true | Run ryuk as a privileged container |
40+
| TESTCONTAINERS_RYUK_DISABLED | true | Disable ryuk |
41+
| TESTCONTAINERS_RYUK_PORT | 65515 | Set ryuk host port (not recommended) |
42+
| TESTCONTAINERS_SSHD_PORT | 65515 | Set SSHd host port (not recommended) |
43+
| TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX | mycompany.com/registry | Set default image registry |
44+
| RYUK_CONTAINER_IMAGE | testcontainers/ryuk:0.14.0 | Custom image for ryuk |
45+
| SSHD_CONTAINER_IMAGE | testcontainers/sshd:1.3.0 | Custom image for SSHd |
46+
| TESTCONTAINERS_REUSE_ENABLE | true | Enable reusable containers |
47+
| TESTCONTAINERS_RYUK_VERBOSE | true | Sets RYUK_VERBOSE env var in ryuk container |
48+
| TESTCONTAINERS_RYUK_RECONNECTION_TIMEOUT | 30s | Sets RYUK_RECONNECTION_TIMEOUT env var in ryuk container |

packages/testcontainers/src/reaper/reaper.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,14 @@ describe.sequential("Reaper", { timeout: 120_000 }, () => {
8585
const reaperContainer = client.container.getById(reaper.containerId);
8686
expect((await reaperContainer.inspect()).Config.Env).toContain("RYUK_VERBOSE=true");
8787
});
88+
89+
it("should propagate TESTCONTAINERS_RYUK_RECONNECTION_TIMEOUT into Reaper container", async () => {
90+
vi.stubEnv("TESTCONTAINERS_RYUK_RECONNECTION_TIMEOUT", "30s");
91+
vi.spyOn(client.container, "list").mockResolvedValue([]);
92+
93+
const reaper = await getReaper();
94+
95+
const reaperContainer = client.container.getById(reaper.containerId);
96+
expect((await reaperContainer.inspect()).Config.Env).toContain("RYUK_RECONNECTION_TIMEOUT=30s");
97+
});
8898
});

packages/testcontainers/src/reaper/reaper.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ async function createNewReaper(sessionId: string, remoteSocketPath: string): Pro
8484
if (process.env["TESTCONTAINERS_RYUK_VERBOSE"]) {
8585
container.withEnvironment({ RYUK_VERBOSE: process.env["TESTCONTAINERS_RYUK_VERBOSE"] });
8686
}
87+
if (process.env["TESTCONTAINERS_RYUK_RECONNECTION_TIMEOUT"]) {
88+
container.withEnvironment({ RYUK_RECONNECTION_TIMEOUT: process.env["TESTCONTAINERS_RYUK_RECONNECTION_TIMEOUT"] });
89+
}
8790
if (process.env["TESTCONTAINERS_RYUK_PRIVILEGED"] === "true") {
8891
container.withPrivilegedMode();
8992
}

0 commit comments

Comments
 (0)