ai-project-manage-cli 2.0.13 → 2.0.14
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/cli/commands/deploy-backend.d.ts.map +1 -1
- package/dist/cli/commands/deploy-backend.js +18 -32
- package/dist/cli/commands/deploy-backend.js.map +1 -1
- package/dist/core/apm-config.d.ts +18 -30
- package/dist/core/apm-config.d.ts.map +1 -1
- package/dist/core/apm-config.js +22 -40
- package/dist/core/apm-config.js.map +1 -1
- package/dist/core/backend-deploy/backend-deploy-workflow.d.ts +8 -5
- package/dist/core/backend-deploy/backend-deploy-workflow.d.ts.map +1 -1
- package/dist/core/backend-deploy/backend-deploy-workflow.js +57 -31
- package/dist/core/backend-deploy/backend-deploy-workflow.js.map +1 -1
- package/dist/core/backend-deploy/command-runner.d.ts +11 -0
- package/dist/core/backend-deploy/command-runner.d.ts.map +1 -0
- package/dist/core/backend-deploy/command-runner.js +47 -0
- package/dist/core/backend-deploy/command-runner.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/client.d.ts +18 -0
- package/dist/core/backend-deploy/dockerode-client/client.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/client.js +114 -0
- package/dist/core/backend-deploy/dockerode-client/client.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts +6 -0
- package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/connection-options.js +52 -0
- package/dist/core/backend-deploy/dockerode-client/connection-options.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts +3 -0
- package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js +23 -0
- package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/container-options.d.ts +4 -0
- package/dist/core/backend-deploy/dockerode-client/container-options.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/container-options.js +36 -0
- package/dist/core/backend-deploy/dockerode-client/container-options.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/env.d.ts +3 -0
- package/dist/core/backend-deploy/dockerode-client/env.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/env.js +37 -0
- package/dist/core/backend-deploy/dockerode-client/env.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/index.d.ts +8 -0
- package/dist/core/backend-deploy/dockerode-client/index.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/index.js +17 -0
- package/dist/core/backend-deploy/dockerode-client/index.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/ports.d.ts +9 -0
- package/dist/core/backend-deploy/dockerode-client/ports.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/ports.js +35 -0
- package/dist/core/backend-deploy/dockerode-client/ports.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/runtime.d.ts +7 -0
- package/dist/core/backend-deploy/dockerode-client/runtime.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/runtime.js +26 -0
- package/dist/core/backend-deploy/dockerode-client/runtime.js.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/types.d.ts +62 -0
- package/dist/core/backend-deploy/dockerode-client/types.d.ts.map +1 -0
- package/dist/core/backend-deploy/dockerode-client/types.js +3 -0
- package/dist/core/backend-deploy/dockerode-client/types.js.map +1 -0
- package/dist/core/backend-deploy/image-tag.d.ts +1 -1
- package/dist/core/backend-deploy/image-tag.d.ts.map +1 -1
- package/dist/core/backend-deploy/image-tag.js +2 -2
- package/dist/core/backend-deploy/image-tag.js.map +1 -1
- package/dist/core/backend-deploy/index.d.ts +1 -10
- package/dist/core/backend-deploy/index.d.ts.map +1 -1
- package/dist/core/backend-deploy/index.js +1 -18
- package/dist/core/backend-deploy/index.js.map +1 -1
- package/dist/core/backend-deploy/local-docker-build.d.ts +3 -6
- package/dist/core/backend-deploy/local-docker-build.d.ts.map +1 -1
- package/dist/core/backend-deploy/local-docker-build.js +9 -13
- package/dist/core/backend-deploy/local-docker-build.js.map +1 -1
- package/dist/core/backend-deploy/logger.d.ts +10 -0
- package/dist/core/backend-deploy/logger.d.ts.map +1 -0
- package/dist/core/backend-deploy/logger.js +22 -0
- package/dist/core/backend-deploy/logger.js.map +1 -0
- package/dist/core/backend-deploy/registry-login-push.d.ts +18 -8
- package/dist/core/backend-deploy/registry-login-push.d.ts.map +1 -1
- package/dist/core/backend-deploy/registry-login-push.js +25 -36
- package/dist/core/backend-deploy/registry-login-push.js.map +1 -1
- package/dist/core/backend-deploy/remote-docker-client.d.ts.map +1 -1
- package/dist/core/backend-deploy/remote-docker-client.js +1 -0
- package/dist/core/backend-deploy/remote-docker-client.js.map +1 -1
- package/dist/core/backend-deploy/resolve-dockerfile.d.ts +2 -7
- package/dist/core/backend-deploy/resolve-dockerfile.d.ts.map +1 -1
- package/dist/core/backend-deploy/resolve-dockerfile.js +9 -18
- package/dist/core/backend-deploy/resolve-dockerfile.js.map +1 -1
- package/dist/core/backend-deploy/run-docker-cli.d.ts +3 -8
- package/dist/core/backend-deploy/run-docker-cli.d.ts.map +1 -1
- package/dist/core/backend-deploy/run-docker-cli.js +4 -23
- package/dist/core/backend-deploy/run-docker-cli.js.map +1 -1
- package/dist/core/backend-deploy/types.d.ts +15 -63
- package/dist/core/backend-deploy/types.d.ts.map +1 -1
- package/dist/core/backend-deploy/types.js +0 -3
- package/dist/core/backend-deploy/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDockerodeClient = exports.DockerodeClient = void 0;
|
|
7
|
+
const dockerode_1 = __importDefault(require("dockerode"));
|
|
8
|
+
const connection_options_1 = require("./connection-options");
|
|
9
|
+
const container_inspect_format_1 = require("./container-inspect-format");
|
|
10
|
+
const container_options_1 = require("./container-options");
|
|
11
|
+
class DockerodeClient {
|
|
12
|
+
client;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
const options = (0, connection_options_1.toDockerConnectionOptions)(config);
|
|
15
|
+
this.client = new dockerode_1.default(options);
|
|
16
|
+
}
|
|
17
|
+
async ping() {
|
|
18
|
+
await this.client.ping();
|
|
19
|
+
}
|
|
20
|
+
async imageExists(image) {
|
|
21
|
+
try {
|
|
22
|
+
await this.client.getImage(image).inspect();
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async removeImage(image) {
|
|
30
|
+
await this.client.getImage(image).remove({ force: true });
|
|
31
|
+
}
|
|
32
|
+
async pullImage(image, auth) {
|
|
33
|
+
const stream = await new Promise((resolve, reject) => {
|
|
34
|
+
const pullOptions = auth ? { authconfig: auth } : undefined;
|
|
35
|
+
this.client.pull(image, pullOptions, (err, output) => {
|
|
36
|
+
if (err || !output) {
|
|
37
|
+
reject(err ?? new Error("docker pull 返回空输出"));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
resolve(output);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
await new Promise((resolve, reject) => {
|
|
44
|
+
this.client.modem.followProgress(stream, (err) => {
|
|
45
|
+
if (err) {
|
|
46
|
+
reject(err);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
resolve();
|
|
50
|
+
}, () => undefined);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async findContainerIdByName(name) {
|
|
54
|
+
const containers = await this.client.listContainers({ all: true });
|
|
55
|
+
const matched = containers.find((item) => (item.Names ?? []).some((n) => n === `/${name}`));
|
|
56
|
+
return matched?.Id;
|
|
57
|
+
}
|
|
58
|
+
async stopContainer(id) {
|
|
59
|
+
const container = this.client.getContainer(id);
|
|
60
|
+
try {
|
|
61
|
+
await container.stop();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Container may already be stopped.
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async removeContainer(id) {
|
|
68
|
+
const container = this.client.getContainer(id);
|
|
69
|
+
await container.remove({ force: true });
|
|
70
|
+
}
|
|
71
|
+
async createContainer(input) {
|
|
72
|
+
const payload = (0, container_options_1.toContainerCreateOptions)(input);
|
|
73
|
+
const container = await this.client.createContainer(payload);
|
|
74
|
+
return container.id;
|
|
75
|
+
}
|
|
76
|
+
async startContainer(id) {
|
|
77
|
+
const container = this.client.getContainer(id);
|
|
78
|
+
await container.start();
|
|
79
|
+
}
|
|
80
|
+
async inspectContainer(id) {
|
|
81
|
+
const container = this.client.getContainer(id);
|
|
82
|
+
const inspectInfo = await container.inspect();
|
|
83
|
+
const state = inspectInfo?.State;
|
|
84
|
+
const portMappings = (0, container_inspect_format_1.formatPortMappings)(inspectInfo);
|
|
85
|
+
return {
|
|
86
|
+
running: state?.Running,
|
|
87
|
+
status: state?.Status,
|
|
88
|
+
exitCode: state?.ExitCode,
|
|
89
|
+
error: state?.Error,
|
|
90
|
+
startedAt: state?.StartedAt,
|
|
91
|
+
finishedAt: state?.FinishedAt,
|
|
92
|
+
health: state?.Health?.Status,
|
|
93
|
+
portMappings,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
async getContainerLogs(id, tail = 100) {
|
|
97
|
+
const container = this.client.getContainer(id);
|
|
98
|
+
const logs = await container.logs({
|
|
99
|
+
stdout: true,
|
|
100
|
+
stderr: true,
|
|
101
|
+
timestamps: true,
|
|
102
|
+
follow: false,
|
|
103
|
+
tail,
|
|
104
|
+
});
|
|
105
|
+
if (typeof logs === "string") {
|
|
106
|
+
return logs;
|
|
107
|
+
}
|
|
108
|
+
return logs.toString("utf8");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.DockerodeClient = DockerodeClient;
|
|
112
|
+
const createDockerodeClient = (config) => new DockerodeClient(config);
|
|
113
|
+
exports.createDockerodeClient = createDockerodeClient;
|
|
114
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DockerDeployConnectionConfig } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* 将通用连接配置转为 dockerode 可用的 modem 选项(含可选 TLS)。
|
|
4
|
+
*/
|
|
5
|
+
export declare function toDockerConnectionOptions(config: DockerDeployConnectionConfig): Record<string, unknown>;
|
|
6
|
+
//# sourceMappingURL=connection-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/connection-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAgB5D;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,4BAA4B,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BzB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toDockerConnectionOptions = toDockerConnectionOptions;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
function asOptionalTlsBuffer(value) {
|
|
6
|
+
if (typeof value !== "string") {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const normalized = value.trim();
|
|
10
|
+
if (normalized === "") {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
if ((0, node_fs_1.existsSync)(normalized)) {
|
|
14
|
+
return (0, node_fs_1.readFileSync)(normalized);
|
|
15
|
+
}
|
|
16
|
+
return Buffer.from(normalized);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 将通用连接配置转为 dockerode 可用的 modem 选项(含可选 TLS)。
|
|
20
|
+
*/
|
|
21
|
+
function toDockerConnectionOptions(config) {
|
|
22
|
+
const protocol = (config.protocol ?? "https").toLowerCase();
|
|
23
|
+
const isHttps = protocol === "https";
|
|
24
|
+
const options = {
|
|
25
|
+
host: config.host ?? "127.0.0.1",
|
|
26
|
+
port: config.port ?? 2376,
|
|
27
|
+
protocol,
|
|
28
|
+
};
|
|
29
|
+
const socketPath = (config.socketPath ?? "").trim();
|
|
30
|
+
if (socketPath !== "") {
|
|
31
|
+
options.socketPath = socketPath;
|
|
32
|
+
}
|
|
33
|
+
if (isHttps) {
|
|
34
|
+
const tlsOptions = {
|
|
35
|
+
ca: asOptionalTlsBuffer(config.ca),
|
|
36
|
+
cert: asOptionalTlsBuffer(config.cert),
|
|
37
|
+
key: asOptionalTlsBuffer(config.key),
|
|
38
|
+
};
|
|
39
|
+
if (tlsOptions.ca) {
|
|
40
|
+
options.ca = tlsOptions.ca;
|
|
41
|
+
}
|
|
42
|
+
if (tlsOptions.cert) {
|
|
43
|
+
options.cert = tlsOptions.cert;
|
|
44
|
+
}
|
|
45
|
+
if (tlsOptions.key) {
|
|
46
|
+
options.key = tlsOptions.key;
|
|
47
|
+
}
|
|
48
|
+
options.checkServerIdentity = () => undefined;
|
|
49
|
+
}
|
|
50
|
+
return options;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=connection-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-options.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/connection-options.ts"],"names":[],"mappings":";;AAqBA,8DAiCC;AAtDD,qCAAmD;AAInD,SAAS,mBAAmB,CAAC,KAAyB;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAA,sBAAY,EAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CACvC,MAAoC;IAEpC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO,CAAC;IACrC,MAAM,OAAO,GAA4B;QACvC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;QACzB,QAAQ;KACT,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG;YACjB,EAAE,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC;SACrC,CAAC;QACF,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,mBAAmB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-inspect-format.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/container-inspect-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,CAAC,oBAAoB,GACvC,MAAM,EAAE,GAAG,SAAS,CAoBtB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatPortMappings = formatPortMappings;
|
|
4
|
+
function formatPortMappings(inspectInfo) {
|
|
5
|
+
const ports = inspectInfo?.NetworkSettings?.Ports;
|
|
6
|
+
if (!ports || typeof ports !== "object") {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const mappings = [];
|
|
10
|
+
for (const [containerPort, hostBindings] of Object.entries(ports)) {
|
|
11
|
+
if (!hostBindings || hostBindings.length === 0) {
|
|
12
|
+
mappings.push(`${containerPort} -> <not-published>`);
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
for (const binding of hostBindings) {
|
|
16
|
+
const hostIp = binding.HostIp || "0.0.0.0";
|
|
17
|
+
const hostPort = binding.HostPort || "<unknown>";
|
|
18
|
+
mappings.push(`${containerPort} -> ${hostIp}:${hostPort}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return mappings.length > 0 ? mappings : undefined;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=container-inspect-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-inspect-format.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/container-inspect-format.ts"],"names":[],"mappings":";;AAEA,gDAsBC;AAtBD,SAAgB,kBAAkB,CAChC,WAAwC;IAExC,MAAM,KAAK,GAAG,WAAW,EAAE,eAAe,EAAE,KAAK,CAAC;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,qBAAqB,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;YAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-options.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/container-options.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAAC,sBAAsB,CAiC/B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toContainerCreateOptions = toContainerCreateOptions;
|
|
4
|
+
function toContainerCreateOptions(input) {
|
|
5
|
+
const hostConfig = {};
|
|
6
|
+
let hasHostConfig = false;
|
|
7
|
+
if (input.portBindings) {
|
|
8
|
+
hostConfig.PortBindings = input.portBindings;
|
|
9
|
+
hasHostConfig = true;
|
|
10
|
+
}
|
|
11
|
+
if (input.binds) {
|
|
12
|
+
hostConfig.Binds = input.binds;
|
|
13
|
+
hasHostConfig = true;
|
|
14
|
+
}
|
|
15
|
+
if (typeof input.nanoCpus === "number") {
|
|
16
|
+
hostConfig.NanoCpus = input.nanoCpus;
|
|
17
|
+
hasHostConfig = true;
|
|
18
|
+
}
|
|
19
|
+
if (typeof input.memory === "number") {
|
|
20
|
+
hostConfig.Memory = Number(input.memory) * 1024 * 1024;
|
|
21
|
+
hasHostConfig = true;
|
|
22
|
+
}
|
|
23
|
+
const payload = {
|
|
24
|
+
name: input.name,
|
|
25
|
+
Image: input.image,
|
|
26
|
+
Env: input.env,
|
|
27
|
+
};
|
|
28
|
+
if (input.exposedPorts) {
|
|
29
|
+
payload.ExposedPorts = input.exposedPorts;
|
|
30
|
+
}
|
|
31
|
+
if (hasHostConfig) {
|
|
32
|
+
payload.HostConfig = hostConfig;
|
|
33
|
+
}
|
|
34
|
+
return payload;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=container-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-options.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/container-options.ts"],"names":[],"mappings":";;AAIA,4DAmCC;AAnCD,SAAgB,wBAAwB,CACtC,KAAiC;IAEjC,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAC7C,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACrC,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACvD,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAkC;QAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;IACF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/env.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyB3E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAEhE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadEnvFromFile = loadEnvFromFile;
|
|
7
|
+
exports.toEnvArray = toEnvArray;
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
function loadEnvFromFile(envFilePath) {
|
|
11
|
+
if (!envFilePath) {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
const targetPath = node_path_1.default.resolve(envFilePath);
|
|
15
|
+
const raw = (0, node_fs_1.readFileSync)(targetPath, "utf-8");
|
|
16
|
+
const result = {};
|
|
17
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
18
|
+
const normalized = line.trim();
|
|
19
|
+
if (normalized === "" || normalized.startsWith("#")) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const eqIndex = normalized.indexOf("=");
|
|
23
|
+
if (eqIndex <= 0) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const key = normalized.slice(0, eqIndex).trim();
|
|
27
|
+
const value = normalized.slice(eqIndex + 1);
|
|
28
|
+
if (key !== "") {
|
|
29
|
+
result[key] = value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
function toEnvArray(env) {
|
|
35
|
+
return Object.entries(env).map(([key, value]) => `${key}=${value}`);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/env.ts"],"names":[],"mappings":";;;;;AAGA,0CAyBC;AAED,gCAEC;AAhCD,qCAAuC;AACvC,0DAA6B;AAE7B,SAAgB,eAAe,CAAC,WAAmB;IACjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,mBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,UAAU,KAAK,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,UAAU,CAAC,GAA2B;IACpD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { DockerContainerRuntimeInput, DockerContainerStateSummary, DockerCreateContainerInput, DockerDeployConnectionConfig, DockerodeClientFactory, DockerodeClientPort, DockerPullAuth, } from "./types";
|
|
2
|
+
export { DockerodeClient, createDockerodeClient } from "./client";
|
|
3
|
+
export { toDockerConnectionOptions } from "./connection-options";
|
|
4
|
+
export { formatPortMappings } from "./container-inspect-format";
|
|
5
|
+
export { toContainerCreateOptions } from "./container-options";
|
|
6
|
+
export { loadEnvFromFile } from "./env";
|
|
7
|
+
export { parsePorts } from "./ports";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parsePorts = exports.loadEnvFromFile = exports.toContainerCreateOptions = exports.formatPortMappings = exports.toDockerConnectionOptions = exports.createDockerodeClient = exports.DockerodeClient = void 0;
|
|
4
|
+
var client_1 = require("./client");
|
|
5
|
+
Object.defineProperty(exports, "DockerodeClient", { enumerable: true, get: function () { return client_1.DockerodeClient; } });
|
|
6
|
+
Object.defineProperty(exports, "createDockerodeClient", { enumerable: true, get: function () { return client_1.createDockerodeClient; } });
|
|
7
|
+
var connection_options_1 = require("./connection-options");
|
|
8
|
+
Object.defineProperty(exports, "toDockerConnectionOptions", { enumerable: true, get: function () { return connection_options_1.toDockerConnectionOptions; } });
|
|
9
|
+
var container_inspect_format_1 = require("./container-inspect-format");
|
|
10
|
+
Object.defineProperty(exports, "formatPortMappings", { enumerable: true, get: function () { return container_inspect_format_1.formatPortMappings; } });
|
|
11
|
+
var container_options_1 = require("./container-options");
|
|
12
|
+
Object.defineProperty(exports, "toContainerCreateOptions", { enumerable: true, get: function () { return container_options_1.toContainerCreateOptions; } });
|
|
13
|
+
var env_1 = require("./env");
|
|
14
|
+
Object.defineProperty(exports, "loadEnvFromFile", { enumerable: true, get: function () { return env_1.loadEnvFromFile; } });
|
|
15
|
+
var ports_1 = require("./ports");
|
|
16
|
+
Object.defineProperty(exports, "parsePorts", { enumerable: true, get: function () { return ports_1.parsePorts; } });
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/index.ts"],"names":[],"mappings":";;;AAUA,mCAAkE;AAAzD,yGAAA,eAAe,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAC/C,2DAAiE;AAAxD,+HAAA,yBAAyB,OAAA;AAClC,uEAAgE;AAAvD,8HAAA,kBAAkB,OAAA;AAC3B,yDAA+D;AAAtD,6HAAA,wBAAwB,OAAA;AACjC,6BAAwC;AAA/B,sGAAA,eAAe,OAAA;AACxB,iCAAqC;AAA5B,mGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import Docker from "dockerode";
|
|
2
|
+
/**
|
|
3
|
+
* 解析 `hostPort:containerPort[/udp]` 形式的端口列表为 dockerode 的 ExposedPorts / PortBindings。
|
|
4
|
+
*/
|
|
5
|
+
export declare function parsePorts(ports?: string[]): {
|
|
6
|
+
exposedPorts?: Docker.ContainerCreateOptions["ExposedPorts"];
|
|
7
|
+
portBindings?: Docker.HostConfig["PortBindings"];
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/ports.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;CAClD,CAgCA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parsePorts = parsePorts;
|
|
4
|
+
/**
|
|
5
|
+
* 解析 `hostPort:containerPort[/udp]` 形式的端口列表为 dockerode 的 ExposedPorts / PortBindings。
|
|
6
|
+
*/
|
|
7
|
+
function parsePorts(ports) {
|
|
8
|
+
if (!ports || ports.length === 0) {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
const exposedPorts = {};
|
|
12
|
+
const portBindings = {};
|
|
13
|
+
for (const rawPort of ports) {
|
|
14
|
+
const normalized = rawPort.trim();
|
|
15
|
+
if (normalized === "") {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const [hostAndContainer, protocolPart] = normalized.split("/");
|
|
19
|
+
const protocol = protocolPart?.trim() === "udp" ? "udp" : "tcp";
|
|
20
|
+
const segments = hostAndContainer.split(":").map((part) => part.trim());
|
|
21
|
+
if (segments.length !== 2 || !segments[0] || !segments[1]) {
|
|
22
|
+
throw new Error(`container.ports 配置无效: ${rawPort}`);
|
|
23
|
+
}
|
|
24
|
+
const hostPort = segments[0];
|
|
25
|
+
const containerPort = segments[1];
|
|
26
|
+
const key = `${containerPort}/${protocol}`;
|
|
27
|
+
exposedPorts[key] = {};
|
|
28
|
+
portBindings[key] = [{ HostPort: hostPort }];
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
exposedPorts: Object.keys(exposedPorts).length > 0 ? exposedPorts : undefined,
|
|
32
|
+
portBindings: Object.keys(portBindings).length > 0 ? portBindings : undefined,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/ports.ts"],"names":[],"mappings":";;AAKA,gCAmCC;AAtCD;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAgB;IAIzC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAkD,EAAE,CAAC;IACvE,MAAM,YAAY,GAAsC,EAAE,CAAC;IAE3D,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,YAAY,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACvB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC7E,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DockerContainerRuntimeInput, DockerCreateContainerInput } from "./types";
|
|
2
|
+
export declare function toRuntimeContainerInput(input: {
|
|
3
|
+
runtime: DockerContainerRuntimeInput;
|
|
4
|
+
resolve: (...parts: string[]) => string;
|
|
5
|
+
readText: (path: string) => string;
|
|
6
|
+
}): DockerCreateContainerInput;
|
|
7
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAIvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,2BAA2B,CAAC;IACrC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC,GAAG,0BAA0B,CAoB7B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toRuntimeContainerInput = toRuntimeContainerInput;
|
|
4
|
+
const env_1 = require("./env");
|
|
5
|
+
const ports_1 = require("./ports");
|
|
6
|
+
function toRuntimeContainerInput(input) {
|
|
7
|
+
const envFromFile = (0, env_1.loadEnvFromFile)({
|
|
8
|
+
projectRoot: input.runtime.projectRoot,
|
|
9
|
+
envFilePath: input.runtime.envFilePath,
|
|
10
|
+
resolve: input.resolve,
|
|
11
|
+
readText: input.readText,
|
|
12
|
+
});
|
|
13
|
+
const env = (0, env_1.mergeEnv)(envFromFile, input.runtime.env, input.runtime.cliEnv);
|
|
14
|
+
const ports = (0, ports_1.parsePorts)(input.runtime.ports);
|
|
15
|
+
return {
|
|
16
|
+
name: input.runtime.name,
|
|
17
|
+
image: input.runtime.image,
|
|
18
|
+
env,
|
|
19
|
+
exposedPorts: ports.exposedPorts,
|
|
20
|
+
portBindings: ports.portBindings,
|
|
21
|
+
binds: input.runtime.binds,
|
|
22
|
+
nanoCpus: input.runtime.nanoCpus,
|
|
23
|
+
memory: input.runtime.memory,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/runtime.ts"],"names":[],"mappings":";;AAIA,0DAwBC;AA3BD,+BAAkD;AAClD,mCAAqC;AAErC,SAAgB,uBAAuB,CAAC,KAIvC;IACC,MAAM,WAAW,GAAG,IAAA,qBAAe,EAAC;QAClC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;QACtC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAA,cAAQ,EAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;QACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC1B,GAAG;QACH,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC1B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;QAChC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type Docker from "dockerode";
|
|
2
|
+
export type DockerDeployConnectionConfig = {
|
|
3
|
+
socketPath?: string;
|
|
4
|
+
host?: string;
|
|
5
|
+
port?: number;
|
|
6
|
+
protocol?: string;
|
|
7
|
+
ca?: string;
|
|
8
|
+
cert?: string;
|
|
9
|
+
key?: string;
|
|
10
|
+
};
|
|
11
|
+
export type DockerodeClientPort = {
|
|
12
|
+
ping: () => Promise<void>;
|
|
13
|
+
imageExists: (image: string) => Promise<boolean>;
|
|
14
|
+
removeImage: (image: string) => Promise<void>;
|
|
15
|
+
pullImage: (image: string, auth?: DockerPullAuth) => Promise<void>;
|
|
16
|
+
findContainerIdByName: (name: string) => Promise<string | undefined>;
|
|
17
|
+
stopContainer: (id: string) => Promise<void>;
|
|
18
|
+
removeContainer: (id: string) => Promise<void>;
|
|
19
|
+
createContainer: (input: DockerCreateContainerInput) => Promise<string>;
|
|
20
|
+
startContainer: (id: string) => Promise<void>;
|
|
21
|
+
inspectContainer: (id: string) => Promise<DockerContainerStateSummary>;
|
|
22
|
+
getContainerLogs: (id: string, tail?: number) => Promise<string>;
|
|
23
|
+
};
|
|
24
|
+
export type DockerCreateContainerInput = {
|
|
25
|
+
name: string;
|
|
26
|
+
image: string;
|
|
27
|
+
env: string[];
|
|
28
|
+
exposedPorts?: Docker.ContainerCreateOptions["ExposedPorts"];
|
|
29
|
+
portBindings?: Docker.HostConfig["PortBindings"];
|
|
30
|
+
binds?: Docker.HostConfig["Binds"];
|
|
31
|
+
nanoCpus?: Docker.HostConfig["NanoCpus"];
|
|
32
|
+
memory?: number;
|
|
33
|
+
};
|
|
34
|
+
export type DockerContainerRuntimeInput = {
|
|
35
|
+
name: string;
|
|
36
|
+
image: string;
|
|
37
|
+
projectRoot: string;
|
|
38
|
+
envFilePath?: string;
|
|
39
|
+
env?: Record<string, string>;
|
|
40
|
+
cliEnv?: Record<string, string>;
|
|
41
|
+
ports?: string[];
|
|
42
|
+
binds?: string[];
|
|
43
|
+
nanoCpus?: number;
|
|
44
|
+
memory?: number;
|
|
45
|
+
};
|
|
46
|
+
export type DockerPullAuth = {
|
|
47
|
+
username?: string;
|
|
48
|
+
password?: string;
|
|
49
|
+
serveraddress?: string;
|
|
50
|
+
};
|
|
51
|
+
export type DockerContainerStateSummary = {
|
|
52
|
+
running?: boolean;
|
|
53
|
+
status?: string;
|
|
54
|
+
exitCode?: number;
|
|
55
|
+
error?: string;
|
|
56
|
+
startedAt?: string;
|
|
57
|
+
finishedAt?: string;
|
|
58
|
+
health?: string;
|
|
59
|
+
portMappings?: string[];
|
|
60
|
+
};
|
|
61
|
+
export type DockerodeClientFactory = (config: DockerDeployConnectionConfig) => DockerodeClientPort;
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/backend-deploy/dockerode-client/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function assertDeployImageTag(tag: string
|
|
1
|
+
export declare function assertDeployImageTag(tag: string): void;
|
|
2
2
|
//# sourceMappingURL=image-tag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-tag.d.ts","sourceRoot":"","sources":["../../../src/core/backend-deploy/image-tag.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"image-tag.d.ts","sourceRoot":"","sources":["../../../src/core/backend-deploy/image-tag.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOtD"}
|
|
@@ -6,10 +6,10 @@ exports.assertDeployImageTag = assertDeployImageTag;
|
|
|
6
6
|
* 例:test、aaa_bbb、feat-1、prod
|
|
7
7
|
*/
|
|
8
8
|
const DEPLOY_IMAGE_TAG = /^(?!\.|-)[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$/;
|
|
9
|
-
function assertDeployImageTag(tag
|
|
9
|
+
function assertDeployImageTag(tag) {
|
|
10
10
|
const t = tag.trim();
|
|
11
11
|
if (!DEPLOY_IMAGE_TAG.test(t)) {
|
|
12
|
-
throw new Error(`${
|
|
12
|
+
throw new Error(`${t} 须为合法镜像 tag(字母数字及 ._-,不以 . 或 - 开头,最长 128 字符),当前:${JSON.stringify(tag)}`);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=image-tag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-tag.js","sourceRoot":"","sources":["../../../src/core/backend-deploy/image-tag.ts"],"names":[],"mappings":";;AAMA,oDAOC;AAbD;;;GAGG;AACH,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAEtE,SAAgB,oBAAoB,CAAC,GAAW
|
|
1
|
+
{"version":3,"file":"image-tag.js","sourceRoot":"","sources":["../../../src/core/backend-deploy/image-tag.ts"],"names":[],"mappings":";;AAMA,oDAOC;AAbD;;;GAGG;AACH,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAEtE,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,GAAG,CAAC,mDAAmD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
export { assertDeployImageTag } from "./image-tag";
|
|
2
1
|
export { BackendDeployWorkflow } from "./backend-deploy-workflow";
|
|
3
|
-
export {
|
|
4
|
-
export { resolveDockerBuildPaths } from "./resolve-dockerfile";
|
|
5
|
-
export type { ResolvedDockerBuildPaths } from "./resolve-dockerfile";
|
|
6
|
-
export { dockerLoginPrivateRegistry, dockerPushImage, loginAndPushImage, } from "./registry-login-push";
|
|
7
|
-
export { runDockerCli, runProcess } from "./run-docker-cli";
|
|
8
|
-
export { createRemoteDockerClient } from "./remote-docker-client";
|
|
9
|
-
export type { DockerodeInstance } from "./remote-docker-client";
|
|
10
|
-
export { pullImageOnRemote } from "./remote-pull-image";
|
|
11
|
-
export type { BackendDeployParams, BackendDeployResult, BackendDeployStep, PrivateRegistryCredentials, RemoteDockerTlsOptions, RemotePullRegistryAuth, } from "./types";
|
|
2
|
+
export type { BackendDeployParams } from "./types";
|
|
12
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/backend-deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/backend-deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|