testcontainers 8.1.0 → 8.1.1-beta.3
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.
|
@@ -33,26 +33,29 @@ 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
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
36
|
+
// if (await 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
|
+
// } else {
|
|
42
|
+
// log.warn(`Docker client strategy ${strategy.getName()} is not reachable`);
|
|
43
|
+
// }
|
|
45
44
|
}
|
|
46
45
|
}
|
|
47
46
|
throw new Error("No Docker client strategy found");
|
|
48
47
|
});
|
|
49
48
|
const createDockerodeOptions = (dockerConfig) => {
|
|
50
49
|
const dockerOptions = {};
|
|
51
|
-
if (dockerConfig.
|
|
52
|
-
dockerOptions.socketPath =
|
|
50
|
+
if (dockerConfig.socketPath) {
|
|
51
|
+
dockerOptions.socketPath = dockerConfig.socketPath;
|
|
53
52
|
}
|
|
54
53
|
else {
|
|
55
|
-
|
|
54
|
+
const { protocol, hostname, port } = new url_1.URL(dockerConfig.uri);
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
dockerOptions.protocol = protocol.slice(0, -1);
|
|
57
|
+
dockerOptions.host = hostname;
|
|
58
|
+
dockerOptions.port = port;
|
|
56
59
|
}
|
|
57
60
|
if (dockerConfig.ssl) {
|
|
58
61
|
dockerOptions.ca = dockerConfig.ssl.ca;
|
|
@@ -61,13 +64,11 @@ const createDockerodeOptions = (dockerConfig) => {
|
|
|
61
64
|
}
|
|
62
65
|
return dockerOptions;
|
|
63
66
|
};
|
|
64
|
-
const isDockerDaemonReachable = (dockerode) => __awaiter(void 0, void 0, void 0, function* () { return (yield dockerode.ping()).toString() === "OK"; });
|
|
65
67
|
class ConfigurationStrategy {
|
|
66
68
|
getDockerConfig() {
|
|
67
69
|
const { DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH } = process.env;
|
|
68
70
|
return {
|
|
69
71
|
uri: DOCKER_HOST,
|
|
70
|
-
isSocket: false,
|
|
71
72
|
ssl: DOCKER_TLS_VERIFY === "1" && DOCKER_CERT_PATH !== undefined
|
|
72
73
|
? {
|
|
73
74
|
ca: path_1.default.resolve(DOCKER_CERT_PATH, "ca.pem"),
|
|
@@ -88,7 +89,7 @@ class UnixSocketStrategy {
|
|
|
88
89
|
getDockerConfig() {
|
|
89
90
|
return {
|
|
90
91
|
uri: "unix:///var/run/docker.sock",
|
|
91
|
-
|
|
92
|
+
socketPath: "/var/run/docker.sock",
|
|
92
93
|
};
|
|
93
94
|
}
|
|
94
95
|
isApplicable() {
|
|
@@ -102,7 +103,7 @@ class NpipeSocketStrategy {
|
|
|
102
103
|
getDockerConfig() {
|
|
103
104
|
return {
|
|
104
105
|
uri: "npipe:////./pipe/docker_engine",
|
|
105
|
-
|
|
106
|
+
socketPath: "//./pipe/docker_engine",
|
|
106
107
|
};
|
|
107
108
|
}
|
|
108
109
|
isApplicable() {
|
|
@@ -19,7 +19,7 @@ const logSystemDiagnostics = () => __awaiter(void 0, void 0, void 0, function* (
|
|
|
19
19
|
docker: yield get_info_1.getDockerInfo(),
|
|
20
20
|
dockerCompose: yield getDockerComposeInfo(),
|
|
21
21
|
};
|
|
22
|
-
logger_1.log.debug(`System diagnostics: ${JSON.stringify(info
|
|
22
|
+
logger_1.log.debug(`System diagnostics: ${JSON.stringify(info)}`);
|
|
23
23
|
});
|
|
24
24
|
exports.logSystemDiagnostics = logSystemDiagnostics;
|
|
25
25
|
const getNodeInfo = () => {
|