testcontainers 8.1.1-beta.4 → 8.1.1-beta.5
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/dist/docker/docker-client.js +20 -11
- package/package.json +1 -1
|
@@ -33,14 +33,15 @@ const getDockerClient = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
33
33
|
const dockerConfig = strategy.getDockerConfig();
|
|
34
34
|
const dockerode = new dockerode_1.default(createDockerodeOptions(dockerConfig));
|
|
35
35
|
logger_1.log.debug(`Testing Docker client strategy URI: ${dockerConfig.uri}`);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
if (yield isDockerDaemonReachable(dockerode)) {
|
|
37
|
+
const host = yield resolveHost(dockerode, dockerConfig.uri);
|
|
38
|
+
logger_1.log.info(`Using Docker client strategy: ${strategy.getName()}, Docker host: ${host}`);
|
|
39
|
+
log_system_diagnostics_1.logSystemDiagnostics();
|
|
40
|
+
return { host, dockerode };
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
logger_1.log.warn(`Docker client strategy ${strategy.getName()} is not reachable`);
|
|
44
|
+
}
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
throw new Error("No Docker client strategy found");
|
|
@@ -51,9 +52,7 @@ const createDockerodeOptions = (dockerConfig) => {
|
|
|
51
52
|
dockerOptions.socketPath = dockerConfig.socketPath;
|
|
52
53
|
}
|
|
53
54
|
else {
|
|
54
|
-
const {
|
|
55
|
-
// @ts-ignore
|
|
56
|
-
// dockerOptions.protocol = protocol.slice(0, -1);
|
|
55
|
+
const { hostname, port } = new url_1.URL(dockerConfig.uri);
|
|
57
56
|
dockerOptions.host = hostname;
|
|
58
57
|
dockerOptions.port = port;
|
|
59
58
|
}
|
|
@@ -64,6 +63,16 @@ const createDockerodeOptions = (dockerConfig) => {
|
|
|
64
63
|
}
|
|
65
64
|
return dockerOptions;
|
|
66
65
|
};
|
|
66
|
+
const isDockerDaemonReachable = (dockerode) => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
+
try {
|
|
68
|
+
const response = yield dockerode.ping();
|
|
69
|
+
return response.toString() === "OK";
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
logger_1.log.warn(`Docker daemon is not reachable: ${err}`);
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
67
76
|
class ConfigurationStrategy {
|
|
68
77
|
getDockerConfig() {
|
|
69
78
|
const { DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH } = process.env;
|