testcontainers 10.8.2 → 10.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/container-runtime/clients/client.js +1 -0
- package/build/container-runtime/clients/client.js.map +1 -1
- package/build/container-runtime/clients/types.d.ts +1 -0
- package/build/generic-container/generic-container-builder.js +6 -3
- package/build/generic-container/generic-container-builder.js.map +1 -1
- package/build/port-forwarder/port-forwarder.js +1 -6
- package/build/port-forwarder/port-forwarder.js.map +1 -1
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/build/version.js.map +1 -1
- package/build/wait-strategies/one-shot-startup-startegy.d.ts +8 -0
- package/build/wait-strategies/one-shot-startup-startegy.js +28 -0
- package/build/wait-strategies/one-shot-startup-startegy.js.map +1 -0
- package/build/wait-strategies/startup-check-strategy.d.ts +1 -3
- package/build/wait-strategies/startup-check-strategy.js +4 -4
- package/build/wait-strategies/startup-check-strategy.js.map +1 -1
- package/build/wait-strategies/wait.d.ts +1 -0
- package/build/wait-strategies/wait.js +4 -0
- package/build/wait-strategies/wait.js.map +1 -1
- package/package.json +6 -6
|
@@ -102,6 +102,7 @@ async function initStrategy(strategy) {
|
|
|
102
102
|
architecture: dockerodeInfo.Architecture,
|
|
103
103
|
cpus: dockerodeInfo.NCPU,
|
|
104
104
|
memory: dockerodeInfo.MemTotal,
|
|
105
|
+
runtimes: Object.keys(dockerodeInfo.Runtimes),
|
|
105
106
|
};
|
|
106
107
|
const composeInfo = composeClient.info;
|
|
107
108
|
const info = { node: nodeInfo, containerRuntime: containerRuntimeInfo, compose: composeInfo };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/container-runtime/clients/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/container-runtime/clients/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,16 +53,19 @@ class GenericContainerBuilder {
|
|
|
53
53
|
labels[labels_1.LABEL_TESTCONTAINERS_SESSION_ID] = reaper.sessionId;
|
|
54
54
|
}
|
|
55
55
|
common_1.log.info(`Building Dockerfile "${dockerfile}" as image "${imageName.string}"...`);
|
|
56
|
-
|
|
56
|
+
const buildOptions = {
|
|
57
57
|
t: imageName.string,
|
|
58
58
|
dockerfile: this.dockerfileName,
|
|
59
59
|
buildargs: this.buildArgs,
|
|
60
|
-
pull: this.pullPolicy ? "true" : undefined,
|
|
61
60
|
nocache: !this.cache,
|
|
62
61
|
registryconfig: registryConfig,
|
|
63
62
|
labels,
|
|
64
63
|
target: this.target,
|
|
65
|
-
}
|
|
64
|
+
};
|
|
65
|
+
if (this.pullPolicy.shouldPull()) {
|
|
66
|
+
buildOptions.pull = "true";
|
|
67
|
+
}
|
|
68
|
+
await client.image.build(this.context, buildOptions);
|
|
66
69
|
const container = new generic_container_1.GenericContainer(imageName.string);
|
|
67
70
|
if (!(await client.image.exists(imageName))) {
|
|
68
71
|
throw new Error("Failed to build image");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-container-builder.js","sourceRoot":"","sources":["../../src/generic-container/generic-container-builder.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"generic-container-builder.js","sourceRoot":"","sources":["../../src/generic-container/generic-container-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const reaper_1 = require("../reaper/reaper");
|
|
|
9
9
|
const labels_1 = require("../utils/labels");
|
|
10
10
|
exports.SSHD_IMAGE = process.env["SSHD_CONTAINER_IMAGE"]
|
|
11
11
|
? container_runtime_1.ImageName.fromString(process.env["SSHD_CONTAINER_IMAGE"]).string
|
|
12
|
-
: container_runtime_1.ImageName.fromString("testcontainers/sshd:1.
|
|
12
|
+
: container_runtime_1.ImageName.fromString("testcontainers/sshd:1.2.0").string;
|
|
13
13
|
class PortForwarder {
|
|
14
14
|
sshConnection;
|
|
15
15
|
containerId;
|
|
@@ -99,11 +99,6 @@ class PortForwarderInstance {
|
|
|
99
99
|
.withExposedPorts(containerPort)
|
|
100
100
|
.withEnvironment({ PASSWORD: this.PASSWORD })
|
|
101
101
|
.withLabels({ [labels_1.LABEL_TESTCONTAINERS_SSHD]: "true" })
|
|
102
|
-
.withCommand([
|
|
103
|
-
"sh",
|
|
104
|
-
"-c",
|
|
105
|
-
`echo "${this.USERNAME}:$PASSWORD" | chpasswd && /usr/sbin/sshd -D -o PermitRootLogin=yes -o AddressFamily=inet -o GatewayPorts=yes -o AllowAgentForwarding=yes -o AllowTcpForwarding=yes -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostkeyAlgorithms=+ssh-rsa`,
|
|
106
|
-
])
|
|
107
102
|
.start();
|
|
108
103
|
const host = client.info.containerRuntime.host;
|
|
109
104
|
const port = container.getMappedPort(22);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-forwarder.js","sourceRoot":"","sources":["../../src/port-forwarder/port-forwarder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"port-forwarder.js","sourceRoot":"","sources":["../../src/port-forwarder/port-forwarder.ts"],"names":[],"mappings":"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"}
|
package/build/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "10.
|
|
1
|
+
export declare const LIB_VERSION = "10.10.0";
|
package/build/version.js
CHANGED
package/build/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Dockerode from "dockerode";
|
|
2
|
+
import { StartupCheckStrategy, StartupStatus } from "./startup-check-strategy";
|
|
3
|
+
export declare class OneShotStartupCheckStrategy extends StartupCheckStrategy {
|
|
4
|
+
DOCKER_TIMESTAMP_ZERO: string;
|
|
5
|
+
private isDockerTimestampNonEmpty;
|
|
6
|
+
private isContainerStopped;
|
|
7
|
+
checkStartupState(dockerClient: Dockerode, containerId: string): Promise<StartupStatus>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OneShotStartupCheckStrategy = void 0;
|
|
4
|
+
const startup_check_strategy_1 = require("./startup-check-strategy");
|
|
5
|
+
class OneShotStartupCheckStrategy extends startup_check_strategy_1.StartupCheckStrategy {
|
|
6
|
+
DOCKER_TIMESTAMP_ZERO = "0001-01-01T00:00:00Z";
|
|
7
|
+
isDockerTimestampNonEmpty(dockerTimestamp) {
|
|
8
|
+
return dockerTimestamp !== "" && dockerTimestamp !== this.DOCKER_TIMESTAMP_ZERO && Date.parse(dockerTimestamp) > 0;
|
|
9
|
+
}
|
|
10
|
+
isContainerStopped({ State: state }) {
|
|
11
|
+
if (state.Running || state.Paused) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return this.isDockerTimestampNonEmpty(state.StartedAt) && this.isDockerTimestampNonEmpty(state.FinishedAt);
|
|
15
|
+
}
|
|
16
|
+
async checkStartupState(dockerClient, containerId) {
|
|
17
|
+
const info = await dockerClient.getContainer(containerId).inspect();
|
|
18
|
+
if (!this.isContainerStopped(info)) {
|
|
19
|
+
return "PENDING";
|
|
20
|
+
}
|
|
21
|
+
if (info.State.ExitCode === 0) {
|
|
22
|
+
return "SUCCESS";
|
|
23
|
+
}
|
|
24
|
+
return "FAIL";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.OneShotStartupCheckStrategy = OneShotStartupCheckStrategy;
|
|
28
|
+
//# sourceMappingURL=one-shot-startup-startegy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"one-shot-startup-startegy.js","sourceRoot":"","sources":["../../src/wait-strategies/one-shot-startup-startegy.ts"],"names":[],"mappings":";;;AACA,qEAA+E;AAE/E,MAAa,2BAA4B,SAAQ,6CAAoB;IACnE,qBAAqB,GAAG,sBAAsB,CAAC;IAEvC,yBAAyB,CAAC,eAAuB;QACvD,OAAO,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACrH,CAAC;IAEO,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAwB;QAC/D,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7G,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,YAAuB,EAAE,WAAmB;QACzE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAEpE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAClC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC7B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA5BD,kEA4BC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { AbstractWaitStrategy } from "./wait-strategy";
|
|
2
2
|
import Dockerode from "dockerode";
|
|
3
|
-
import { ContainerRuntimeClient } from "../container-runtime";
|
|
4
3
|
export type StartupStatus = "PENDING" | "SUCCESS" | "FAIL";
|
|
5
4
|
export declare abstract class StartupCheckStrategy extends AbstractWaitStrategy {
|
|
6
|
-
|
|
7
|
-
constructor(client: ContainerRuntimeClient);
|
|
5
|
+
constructor();
|
|
8
6
|
abstract checkStartupState(dockerClient: Dockerode, containerId: string): Promise<StartupStatus>;
|
|
9
7
|
waitUntilReady(container: Dockerode.Container): Promise<void>;
|
|
10
8
|
}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StartupCheckStrategy = void 0;
|
|
4
4
|
const wait_strategy_1 = require("./wait-strategy");
|
|
5
|
+
const container_runtime_1 = require("../container-runtime");
|
|
5
6
|
const common_1 = require("../common");
|
|
6
7
|
class StartupCheckStrategy extends wait_strategy_1.AbstractWaitStrategy {
|
|
7
|
-
|
|
8
|
-
constructor(client) {
|
|
8
|
+
constructor() {
|
|
9
9
|
super();
|
|
10
|
-
this.client = client;
|
|
11
10
|
}
|
|
12
11
|
async waitUntilReady(container) {
|
|
13
|
-
const
|
|
12
|
+
const client = await (0, container_runtime_1.getContainerRuntimeClient)();
|
|
13
|
+
const startupStatus = await new common_1.IntervalRetry(1000).retryUntil(async () => await this.checkStartupState(client.container.dockerode, container.id), (startupStatus) => startupStatus === "SUCCESS" || startupStatus === "FAIL", () => {
|
|
14
14
|
const message = `Container not accessible after ${this.startupTimeout}ms`;
|
|
15
15
|
common_1.log.error(message, { containerId: container.id });
|
|
16
16
|
return new Error(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-check-strategy.js","sourceRoot":"","sources":["../../src/wait-strategies/startup-check-strategy.ts"],"names":[],"mappings":";;;AAAA,mDAAuD;
|
|
1
|
+
{"version":3,"file":"startup-check-strategy.js","sourceRoot":"","sources":["../../src/wait-strategies/startup-check-strategy.ts"],"names":[],"mappings":";;;AAAA,mDAAuD;AAEvD,4DAAiE;AACjE,sCAA+C;AAI/C,MAAsB,oBAAqB,SAAQ,oCAAoB;IACrE;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAIe,KAAK,CAAC,cAAc,CAAC,SAA8B;QACjE,MAAM,MAAM,GAAG,MAAM,IAAA,6CAAyB,GAAE,CAAC;QAEjD,MAAM,aAAa,GAAG,MAAM,IAAI,sBAAa,CAAuB,IAAI,CAAC,CAAC,UAAU,CAClF,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAClF,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,MAAM,EAC1E,GAAG,EAAE;YACH,MAAM,OAAO,GAAG,kCAAkC,IAAI,CAAC,cAAc,IAAI,CAAC;YAC1E,YAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,EACD,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,IAAI,aAAa,YAAY,KAAK,EAAE;YAClC,MAAM,aAAa,CAAC;SACrB;aAAM,IAAI,aAAa,KAAK,MAAM,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;SAClE;IACH,CAAC;CACF;AA3BD,oDA2BC"}
|
|
@@ -8,6 +8,7 @@ export declare class Wait {
|
|
|
8
8
|
static forListeningPorts(): WaitStrategy;
|
|
9
9
|
static forLogMessage(message: Log | RegExp, times?: number): WaitStrategy;
|
|
10
10
|
static forHealthCheck(): WaitStrategy;
|
|
11
|
+
static forOneShotStartup(): WaitStrategy;
|
|
11
12
|
static forHttp(path: string, port: number, options?: HttpWaitStrategyOptions): HttpWaitStrategy;
|
|
12
13
|
static forSuccessfulCommand(command: string): ShellWaitStrategy;
|
|
13
14
|
}
|
|
@@ -7,6 +7,7 @@ const log_wait_strategy_1 = require("./log-wait-strategy");
|
|
|
7
7
|
const shell_wait_strategy_1 = require("./shell-wait-strategy");
|
|
8
8
|
const host_port_wait_strategy_1 = require("./host-port-wait-strategy");
|
|
9
9
|
const composite_wait_strategy_1 = require("./composite-wait-strategy");
|
|
10
|
+
const one_shot_startup_startegy_1 = require("./one-shot-startup-startegy");
|
|
10
11
|
class Wait {
|
|
11
12
|
static forAll(waitStrategies) {
|
|
12
13
|
return new composite_wait_strategy_1.CompositeWaitStrategy(waitStrategies);
|
|
@@ -20,6 +21,9 @@ class Wait {
|
|
|
20
21
|
static forHealthCheck() {
|
|
21
22
|
return new health_check_wait_strategy_1.HealthCheckWaitStrategy();
|
|
22
23
|
}
|
|
24
|
+
static forOneShotStartup() {
|
|
25
|
+
return new one_shot_startup_startegy_1.OneShotStartupCheckStrategy();
|
|
26
|
+
}
|
|
23
27
|
static forHttp(path, port, options = { abortOnContainerExit: false }) {
|
|
24
28
|
return new http_wait_strategy_1.HttpWaitStrategy(path, port, options);
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/wait-strategies/wait.ts"],"names":[],"mappings":";;;AACA,6DAAiF;AACjF,6EAAuE;AACvE,2DAA2D;AAC3D,+DAA0D;AAC1D,uEAAiE;AACjE,uEAAkE;
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/wait-strategies/wait.ts"],"names":[],"mappings":";;;AACA,6DAAiF;AACjF,6EAAuE;AACvE,2DAA2D;AAC3D,+DAA0D;AAC1D,uEAAiE;AACjE,uEAAkE;AAClE,2EAA0E;AAE1E,MAAa,IAAI;IACR,MAAM,CAAC,MAAM,CAAC,cAA8B;QACjD,OAAO,IAAI,+CAAqB,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,iBAAiB;QAC7B,OAAO,IAAI,8CAAoB,EAAE,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,OAAqB,EAAE,KAAK,GAAG,CAAC;QAC1D,OAAO,IAAI,mCAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,cAAc;QAC1B,OAAO,IAAI,oDAAuB,EAAE,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,iBAAiB;QAC7B,OAAO,IAAI,uDAA2B,EAAE,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,OAAO,CACnB,IAAY,EACZ,IAAY,EACZ,UAAmC,EAAE,oBAAoB,EAAE,KAAK,EAAE;QAElE,OAAO,IAAI,qCAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,OAAe;QAChD,OAAO,IAAI,uCAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;CACF;AAhCD,oBAgCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testcontainers",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.10.0",
|
|
4
4
|
"author": "Cristian Greco",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -31,20 +31,20 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@balena/dockerignore": "^1.0.2",
|
|
34
|
-
"@types/dockerode": "^3.3.
|
|
34
|
+
"@types/dockerode": "^3.3.29",
|
|
35
35
|
"archiver": "^5.3.2",
|
|
36
36
|
"async-lock": "^1.4.1",
|
|
37
37
|
"byline": "^5.0.0",
|
|
38
|
-
"debug": "^4.3.
|
|
39
|
-
"docker-compose": "^0.24.
|
|
38
|
+
"debug": "^4.3.5",
|
|
39
|
+
"docker-compose": "^0.24.8",
|
|
40
40
|
"dockerode": "^3.3.5",
|
|
41
41
|
"get-port": "^5.1.1",
|
|
42
42
|
"node-fetch": "^2.7.0",
|
|
43
43
|
"proper-lockfile": "^4.1.2",
|
|
44
44
|
"properties-reader": "^2.3.0",
|
|
45
45
|
"ssh-remote-port-forward": "^1.0.4",
|
|
46
|
-
"tar-fs": "^3.0.
|
|
47
|
-
"tmp": "^0.2.
|
|
46
|
+
"tar-fs": "^3.0.6",
|
|
47
|
+
"tmp": "^0.2.3"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/archiver": "^5.3.4",
|