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.
@@ -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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"}
@@ -19,6 +19,7 @@ export type ContainerRuntimeInfo = {
19
19
  architecture: string;
20
20
  cpus: number;
21
21
  memory: number;
22
+ runtimes: string[];
22
23
  };
23
24
  export type ComposeInfo = {
24
25
  version: string;
@@ -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
- await client.image.build(this.context, {
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":"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"}
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.1.0").string;
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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"}
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "10.8.2";
1
+ export declare const LIB_VERSION = "10.10.0";
package/build/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LIB_VERSION = void 0;
4
- exports.LIB_VERSION = "10.8.2";
4
+ exports.LIB_VERSION = "10.10.0";
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,QAAQ,CAAC"}
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
- private readonly client;
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
- client;
8
- constructor(client) {
8
+ constructor() {
9
9
  super();
10
- this.client = client;
11
10
  }
12
11
  async waitUntilReady(container) {
13
- const startupStatus = await new common_1.IntervalRetry(1000).retryUntil(async () => await this.checkStartupState(this.client.container.dockerode, container.id), (startupStatus) => startupStatus === "SUCCESS" || startupStatus === "FAIL", () => {
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;AAGvD,sCAA+C;AAI/C,MAAsB,oBAAqB,SAAQ,oCAAoB;IACxC;IAA7B,YAA6B,MAA8B;QACzD,KAAK,EAAE,CAAC;QADmB,WAAM,GAAN,MAAM,CAAwB;IAE3D,CAAC;IAIe,KAAK,CAAC,cAAc,CAAC,SAA8B;QACjE,MAAM,aAAa,GAAG,MAAM,IAAI,sBAAa,CAAuB,IAAI,CAAC,CAAC,UAAU,CAClF,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EACvF,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;AAzBD,oDAyBC"}
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;AAElE,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,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;AA5BD,oBA4BC"}
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.8.2",
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.24",
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.4",
39
- "docker-compose": "^0.24.6",
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.5",
47
- "tmp": "^0.2.1"
46
+ "tar-fs": "^3.0.6",
47
+ "tmp": "^0.2.3"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/archiver": "^5.3.4",