@kaitranntt/ccs 7.60.0-dev.3 → 7.60.0-dev.4
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/commands/docker/config-subcommand.d.ts +2 -0
- package/dist/commands/docker/config-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/config-subcommand.js +53 -0
- package/dist/commands/docker/config-subcommand.js.map +1 -0
- package/dist/commands/docker/down-subcommand.d.ts +2 -0
- package/dist/commands/docker/down-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/down-subcommand.js +37 -0
- package/dist/commands/docker/down-subcommand.js.map +1 -0
- package/dist/commands/docker/help-subcommand.d.ts +2 -0
- package/dist/commands/docker/help-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/help-subcommand.js +65 -0
- package/dist/commands/docker/help-subcommand.js.map +1 -0
- package/dist/commands/docker/index.d.ts +2 -0
- package/dist/commands/docker/index.d.ts.map +1 -0
- package/dist/commands/docker/index.js +58 -0
- package/dist/commands/docker/index.js.map +1 -0
- package/dist/commands/docker/logs-subcommand.d.ts +2 -0
- package/dist/commands/docker/logs-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/logs-subcommand.js +50 -0
- package/dist/commands/docker/logs-subcommand.js.map +1 -0
- package/dist/commands/docker/options.d.ts +23 -0
- package/dist/commands/docker/options.d.ts.map +1 -0
- package/dist/commands/docker/options.js +101 -0
- package/dist/commands/docker/options.js.map +1 -0
- package/dist/commands/docker/status-subcommand.d.ts +2 -0
- package/dist/commands/docker/status-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/status-subcommand.js +54 -0
- package/dist/commands/docker/status-subcommand.js.map +1 -0
- package/dist/commands/docker/up-subcommand.d.ts +2 -0
- package/dist/commands/docker/up-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/up-subcommand.js +42 -0
- package/dist/commands/docker/up-subcommand.js.map +1 -0
- package/dist/commands/docker/update-subcommand.d.ts +2 -0
- package/dist/commands/docker/update-subcommand.d.ts.map +1 -0
- package/dist/commands/docker/update-subcommand.js +37 -0
- package/dist/commands/docker/update-subcommand.js.map +1 -0
- package/dist/commands/docker-command.d.ts +2 -0
- package/dist/commands/docker-command.d.ts.map +1 -0
- package/dist/commands/docker-command.js +6 -0
- package/dist/commands/docker-command.js.map +1 -0
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +9 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/root-command-router.d.ts.map +1 -1
- package/dist/commands/root-command-router.js +7 -0
- package/dist/commands/root-command-router.js.map +1 -1
- package/dist/docker/docker-assets.d.ts +25 -0
- package/dist/docker/docker-assets.d.ts.map +1 -0
- package/dist/docker/docker-assets.js +106 -0
- package/dist/docker/docker-assets.js.map +1 -0
- package/dist/docker/docker-bootstrap.d.ts +2 -0
- package/dist/docker/docker-bootstrap.d.ts.map +1 -0
- package/dist/docker/docker-bootstrap.js +51 -0
- package/dist/docker/docker-bootstrap.js.map +1 -0
- package/dist/docker/docker-executor.d.ts +42 -0
- package/dist/docker/docker-executor.d.ts.map +1 -0
- package/dist/docker/docker-executor.js +257 -0
- package/dist/docker/docker-executor.js.map +1 -0
- package/dist/docker/docker-types.d.ts +39 -0
- package/dist/docker/docker-types.d.ts.map +1 -0
- package/dist/docker/docker-types.js +3 -0
- package/dist/docker/docker-types.js.map +1 -0
- package/dist/docker/index.d.ts +4 -0
- package/dist/docker/index.d.ts.map +1 -0
- package/dist/docker/index.js +12 -0
- package/dist/docker/index.js.map +1 -0
- package/docker/Dockerfile +85 -0
- package/docker/Dockerfile.integrated +23 -0
- package/docker/README.md +260 -0
- package/docker/docker-compose.integrated.yml +32 -0
- package/docker/docker-compose.yml +53 -0
- package/docker/entrypoint-integrated.sh +9 -0
- package/docker/entrypoint.sh +34 -0
- package/docker/supervisord.conf +43 -0
- package/package.json +2 -1
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.DockerExecutor = void 0;
|
|
27
|
+
const child_process_1 = require("child_process");
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const docker_assets_1 = require("./docker-assets");
|
|
30
|
+
const LOCAL_DOCKER_SYNC_TIMEOUT_MS = 10000;
|
|
31
|
+
const REMOTE_DOCKER_SYNC_TIMEOUT_MS = 30000;
|
|
32
|
+
function quotePosix(value) {
|
|
33
|
+
return `'${value.replace(/'/g, `'\"'\"'`)}'`;
|
|
34
|
+
}
|
|
35
|
+
function renderCommand(command, args) {
|
|
36
|
+
return [command, ...args.map((arg) => quotePosix(arg))].join(' ');
|
|
37
|
+
}
|
|
38
|
+
function normalizeOutput(value) {
|
|
39
|
+
if (typeof value === 'string')
|
|
40
|
+
return value;
|
|
41
|
+
return value ? value.toString('utf8') : '';
|
|
42
|
+
}
|
|
43
|
+
function formatTimeout(timeoutMs) {
|
|
44
|
+
return timeoutMs % 1000 === 0 ? `${timeoutMs / 1000}s` : `${timeoutMs}ms`;
|
|
45
|
+
}
|
|
46
|
+
function buildTimeoutMessage(command, args, timeoutMs, remote) {
|
|
47
|
+
return [
|
|
48
|
+
`Command timed out after ${formatTimeout(timeoutMs)} while running a ${remote ? 'remote' : 'local'} Docker command.`,
|
|
49
|
+
`Command: ${renderCommand(command, args)}`,
|
|
50
|
+
remote
|
|
51
|
+
? 'Check SSH reachability and the remote Docker host, then try again.'
|
|
52
|
+
: 'Check Docker availability on this machine, then try again.',
|
|
53
|
+
].join('\n');
|
|
54
|
+
}
|
|
55
|
+
function applyDefaultTimeouts(options) {
|
|
56
|
+
return {
|
|
57
|
+
...options,
|
|
58
|
+
timeoutMs: options.timeoutMs ??
|
|
59
|
+
(options.remote ? REMOTE_DOCKER_SYNC_TIMEOUT_MS : LOCAL_DOCKER_SYNC_TIMEOUT_MS),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function runSync(command, args, options = {}) {
|
|
63
|
+
const normalizedOptions = applyDefaultTimeouts(options);
|
|
64
|
+
const result = (0, child_process_1.spawnSync)(command, args, {
|
|
65
|
+
cwd: normalizedOptions.cwd,
|
|
66
|
+
env: normalizedOptions.env,
|
|
67
|
+
encoding: 'utf8',
|
|
68
|
+
stdio: 'pipe',
|
|
69
|
+
timeout: normalizedOptions.timeoutMs,
|
|
70
|
+
windowsHide: true,
|
|
71
|
+
});
|
|
72
|
+
const errorMessage = result.error && 'code' in result.error && result.error.code === 'ETIMEDOUT'
|
|
73
|
+
? buildTimeoutMessage(command, args, normalizedOptions.timeoutMs ?? LOCAL_DOCKER_SYNC_TIMEOUT_MS, normalizedOptions.remote ?? false)
|
|
74
|
+
: result.error?.message;
|
|
75
|
+
const stderr = [normalizeOutput(result.stderr), errorMessage].filter(Boolean).join('\n');
|
|
76
|
+
return {
|
|
77
|
+
command: renderCommand(command, args),
|
|
78
|
+
exitCode: result.status ?? 1,
|
|
79
|
+
stdout: normalizeOutput(result.stdout),
|
|
80
|
+
stderr,
|
|
81
|
+
remote: normalizedOptions.remote ?? false,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function runStreaming(command, args) {
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
86
|
+
const child = (0, child_process_1.spawn)(command, args, {
|
|
87
|
+
stdio: 'inherit',
|
|
88
|
+
windowsHide: true,
|
|
89
|
+
});
|
|
90
|
+
child.on('error', reject);
|
|
91
|
+
child.on('close', (code) => {
|
|
92
|
+
if ((code ?? 1) === 0) {
|
|
93
|
+
resolve();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
reject(new Error(`Command failed (${code ?? 1}): ${renderCommand(command, args)}`));
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
let cachedLocalComposePrefix;
|
|
101
|
+
function resolveLocalComposePrefix() {
|
|
102
|
+
if (cachedLocalComposePrefix) {
|
|
103
|
+
return [...cachedLocalComposePrefix];
|
|
104
|
+
}
|
|
105
|
+
if (runSync('docker', ['compose', 'version'], {
|
|
106
|
+
timeoutMs: LOCAL_DOCKER_SYNC_TIMEOUT_MS,
|
|
107
|
+
}).exitCode === 0) {
|
|
108
|
+
cachedLocalComposePrefix = ['docker', 'compose'];
|
|
109
|
+
return [...cachedLocalComposePrefix];
|
|
110
|
+
}
|
|
111
|
+
if (runSync('docker-compose', ['version'], {
|
|
112
|
+
timeoutMs: LOCAL_DOCKER_SYNC_TIMEOUT_MS,
|
|
113
|
+
}).exitCode === 0) {
|
|
114
|
+
cachedLocalComposePrefix = ['docker-compose'];
|
|
115
|
+
return [...cachedLocalComposePrefix];
|
|
116
|
+
}
|
|
117
|
+
throw new Error('Docker Compose is not available. Install Docker Desktop or docker-compose.');
|
|
118
|
+
}
|
|
119
|
+
function buildRemoteComposeCommand(composeArgs) {
|
|
120
|
+
const suffix = composeArgs.map((arg) => quotePosix(arg)).join(' ');
|
|
121
|
+
return [
|
|
122
|
+
'if docker compose version >/dev/null 2>&1; then',
|
|
123
|
+
`docker compose ${suffix};`,
|
|
124
|
+
'elif docker-compose version >/dev/null 2>&1; then',
|
|
125
|
+
`docker-compose ${suffix};`,
|
|
126
|
+
'else',
|
|
127
|
+
"echo 'Docker Compose is not available on the remote host.' >&2;",
|
|
128
|
+
'exit 127;',
|
|
129
|
+
'fi',
|
|
130
|
+
].join(' ');
|
|
131
|
+
}
|
|
132
|
+
function buildRemoteDockerCommand(args) {
|
|
133
|
+
return ['docker', ...args.map((arg) => quotePosix(arg))].join(' ');
|
|
134
|
+
}
|
|
135
|
+
class DockerExecutor {
|
|
136
|
+
constructor(deps = {}) {
|
|
137
|
+
this.deps = deps;
|
|
138
|
+
this.assets = deps.assets ?? (0, docker_assets_1.getDockerAssetPaths)();
|
|
139
|
+
}
|
|
140
|
+
getConfig(options) {
|
|
141
|
+
return (0, docker_assets_1.createDockerConfigSummary)(options);
|
|
142
|
+
}
|
|
143
|
+
up(options) {
|
|
144
|
+
if (options.host) {
|
|
145
|
+
this.stageRemoteAssets(options.host);
|
|
146
|
+
}
|
|
147
|
+
this.ensureSuccess(this.runCompose(['up', '-d', '--build'], options, {
|
|
148
|
+
CCS_NPM_VERSION: this.getInstalledCcsVersion(),
|
|
149
|
+
CCS_DASHBOARD_PORT: String(options.port),
|
|
150
|
+
CCS_CLIPROXY_PORT: String(options.proxyPort),
|
|
151
|
+
}), 'Docker stack startup', options);
|
|
152
|
+
}
|
|
153
|
+
down(options) {
|
|
154
|
+
this.ensureSuccess(this.runCompose(['down'], options), 'Docker stack shutdown', options);
|
|
155
|
+
}
|
|
156
|
+
status(options) {
|
|
157
|
+
const compose = this.runCompose(['ps'], options);
|
|
158
|
+
this.ensureSuccess(compose, 'Docker status', options);
|
|
159
|
+
let supervisor;
|
|
160
|
+
if (compose.exitCode === 0) {
|
|
161
|
+
supervisor = this.runDocker(['exec', docker_assets_1.DOCKER_CONTAINER_NAME, 'supervisorctl', '-c', '/etc/supervisord.conf', 'status'], options);
|
|
162
|
+
}
|
|
163
|
+
return { compose, supervisor };
|
|
164
|
+
}
|
|
165
|
+
update(options) {
|
|
166
|
+
const script = 'npm install -g @kaitranntt/ccs@latest --force && ccs cliproxy --latest && supervisorctl -c /etc/supervisord.conf restart ccs-dashboard cliproxy';
|
|
167
|
+
this.ensureSuccess(this.runDocker(['exec', docker_assets_1.DOCKER_CONTAINER_NAME, 'sh', '-lc', script], options), 'Docker stack update', options);
|
|
168
|
+
}
|
|
169
|
+
async logs(options) {
|
|
170
|
+
const files = options.service
|
|
171
|
+
? [docker_assets_1.DOCKER_LOG_FILES[options.service]]
|
|
172
|
+
: [docker_assets_1.DOCKER_LOG_FILES.ccs, docker_assets_1.DOCKER_LOG_FILES.cliproxy];
|
|
173
|
+
const touch = `mkdir -p /var/log/ccs && touch ${files.map((file) => quotePosix(file)).join(' ')}`;
|
|
174
|
+
const command = options.follow
|
|
175
|
+
? `${touch} && tail -n 100 -F ${files.map((file) => quotePosix(file)).join(' ')}`
|
|
176
|
+
: options.service
|
|
177
|
+
? `${touch} && tail -n 100 ${quotePosix(files[0])}`
|
|
178
|
+
: `${touch} && printf '== ccs ==\\n' && tail -n 100 ${quotePosix(docker_assets_1.DOCKER_LOG_FILES.ccs)} && printf '\\n== cliproxy ==\\n' && tail -n 100 ${quotePosix(docker_assets_1.DOCKER_LOG_FILES.cliproxy)}`;
|
|
179
|
+
if (options.follow) {
|
|
180
|
+
await this.runDockerStreaming(['exec', docker_assets_1.DOCKER_CONTAINER_NAME, 'sh', '-lc', command], options);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const result = this.runDocker(['exec', docker_assets_1.DOCKER_CONTAINER_NAME, 'sh', '-lc', command], options);
|
|
184
|
+
this.ensureSuccess(result, 'Docker log retrieval', options);
|
|
185
|
+
return result.stdout;
|
|
186
|
+
}
|
|
187
|
+
stageRemoteAssets(host) {
|
|
188
|
+
this.ensureSuccess(this.runSync('ssh', [host, `mkdir -p ${docker_assets_1.DOCKER_REMOTE_DIR}`], { remote: true }), 'Remote Docker asset staging', { host });
|
|
189
|
+
const files = [
|
|
190
|
+
this.assets.composeFile,
|
|
191
|
+
this.assets.dockerfile,
|
|
192
|
+
this.assets.supervisordConfig,
|
|
193
|
+
this.assets.entrypoint,
|
|
194
|
+
];
|
|
195
|
+
const target = `${host}:${docker_assets_1.DOCKER_REMOTE_DIR}/`;
|
|
196
|
+
this.ensureSuccess(this.runSync('scp', [...files, target], { remote: true }), 'Remote Docker asset copy', {
|
|
197
|
+
host,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
runCompose(args, options, env = {}) {
|
|
201
|
+
if (!options.host) {
|
|
202
|
+
const prefix = this.resolveLocalComposePrefix();
|
|
203
|
+
const command = prefix[0];
|
|
204
|
+
const composeArgs = [...prefix.slice(1), '-f', this.assets.composeFile, ...args];
|
|
205
|
+
return this.runSync(command, composeArgs, {
|
|
206
|
+
cwd: path.dirname(this.assets.composeFile),
|
|
207
|
+
env: { ...process.env, ...env },
|
|
208
|
+
remote: false,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
const envPrefix = Object.entries(env)
|
|
212
|
+
.map(([key, value]) => `${key}=${quotePosix(value)}`)
|
|
213
|
+
.join(' ');
|
|
214
|
+
const composeArgs = ['-f', path.basename(this.assets.composeFile), ...args];
|
|
215
|
+
const remoteCommand = `cd ${docker_assets_1.DOCKER_REMOTE_DIR} && ${envPrefix ? `${envPrefix} ` : ''}${buildRemoteComposeCommand(composeArgs)}`;
|
|
216
|
+
return this.runSync('ssh', [options.host, remoteCommand], { remote: true });
|
|
217
|
+
}
|
|
218
|
+
runDocker(args, options) {
|
|
219
|
+
if (!options.host) {
|
|
220
|
+
return this.runSync('docker', args);
|
|
221
|
+
}
|
|
222
|
+
return this.runSync('ssh', [options.host, buildRemoteDockerCommand(args)], { remote: true });
|
|
223
|
+
}
|
|
224
|
+
async runDockerStreaming(args, options) {
|
|
225
|
+
if (!options.host) {
|
|
226
|
+
await this.runStreaming('docker', args);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
await this.runStreaming('ssh', [options.host, buildRemoteDockerCommand(args)]);
|
|
230
|
+
}
|
|
231
|
+
getInstalledCcsVersion() {
|
|
232
|
+
return this.deps.getInstalledCcsVersion?.() ?? (0, docker_assets_1.getInstalledCcsVersion)();
|
|
233
|
+
}
|
|
234
|
+
resolveLocalComposePrefix() {
|
|
235
|
+
return this.deps.resolveLocalComposePrefix?.() ?? resolveLocalComposePrefix();
|
|
236
|
+
}
|
|
237
|
+
runSync(command, args, options = {}) {
|
|
238
|
+
const normalizedOptions = applyDefaultTimeouts(options);
|
|
239
|
+
return (this.deps.runSync?.(command, args, normalizedOptions) ??
|
|
240
|
+
runSync(command, args, normalizedOptions));
|
|
241
|
+
}
|
|
242
|
+
async runStreaming(command, args) {
|
|
243
|
+
await (this.deps.runStreaming?.(command, args) ?? runStreaming(command, args));
|
|
244
|
+
}
|
|
245
|
+
ensureSuccess(result, label, options) {
|
|
246
|
+
if (result.exitCode === 0) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
const detail = (result.stderr || result.stdout).trim();
|
|
250
|
+
const hint = options.host && /No such file|no configuration file|can't cd|not found/i.test(detail)
|
|
251
|
+
? `\nRun \`ccs docker up --host ${options.host}\` first.`
|
|
252
|
+
: '';
|
|
253
|
+
throw new Error(`${label} failed.${detail ? `\n${detail}` : ''}${hint}`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.DockerExecutor = DockerExecutor;
|
|
257
|
+
//# sourceMappingURL=docker-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-executor.js","sourceRoot":"","sources":["../../src/docker/docker-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type DockerLogService = 'ccs' | 'cliproxy';
|
|
2
|
+
export interface DockerCommandTarget {
|
|
3
|
+
host?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DockerUpOptions extends DockerCommandTarget {
|
|
6
|
+
port: number;
|
|
7
|
+
proxyPort: number;
|
|
8
|
+
}
|
|
9
|
+
export interface DockerLogsOptions extends DockerCommandTarget {
|
|
10
|
+
follow: boolean;
|
|
11
|
+
service?: DockerLogService;
|
|
12
|
+
}
|
|
13
|
+
export interface DockerCommandResult {
|
|
14
|
+
command: string;
|
|
15
|
+
exitCode: number;
|
|
16
|
+
stdout: string;
|
|
17
|
+
stderr: string;
|
|
18
|
+
remote: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface DockerStatusResult {
|
|
21
|
+
compose: DockerCommandResult;
|
|
22
|
+
supervisor?: DockerCommandResult;
|
|
23
|
+
}
|
|
24
|
+
export interface DockerConfigSummary {
|
|
25
|
+
host?: string;
|
|
26
|
+
remote: boolean;
|
|
27
|
+
ccsDir: string;
|
|
28
|
+
dockerDir: string;
|
|
29
|
+
composeFile: string;
|
|
30
|
+
dockerfile: string;
|
|
31
|
+
supervisordConfig: string;
|
|
32
|
+
entrypoint: string;
|
|
33
|
+
remoteDeployDir: string;
|
|
34
|
+
composeService: string;
|
|
35
|
+
containerName: string;
|
|
36
|
+
dashboardPort: number;
|
|
37
|
+
proxyPort: number;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=docker-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-types.d.ts","sourceRoot":"","sources":["../../src/docker/docker-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-types.js","sourceRoot":"","sources":["../../src/docker/docker-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { DockerExecutor } from './docker-executor';
|
|
2
|
+
export { DOCKER_CONTAINER_NAME, DOCKER_COMPOSE_SERVICE, DOCKER_DEFAULT_DASHBOARD_PORT, DOCKER_DEFAULT_PROXY_PORT, DOCKER_REMOTE_DIR, } from './docker-assets';
|
|
3
|
+
export type { DockerCommandTarget, DockerConfigSummary, DockerLogsOptions, DockerLogService, DockerStatusResult, DockerUpOptions, } from './docker-types';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DOCKER_REMOTE_DIR = exports.DOCKER_DEFAULT_PROXY_PORT = exports.DOCKER_DEFAULT_DASHBOARD_PORT = exports.DOCKER_COMPOSE_SERVICE = exports.DOCKER_CONTAINER_NAME = exports.DockerExecutor = void 0;
|
|
4
|
+
var docker_executor_1 = require("./docker-executor");
|
|
5
|
+
Object.defineProperty(exports, "DockerExecutor", { enumerable: true, get: function () { return docker_executor_1.DockerExecutor; } });
|
|
6
|
+
var docker_assets_1 = require("./docker-assets");
|
|
7
|
+
Object.defineProperty(exports, "DOCKER_CONTAINER_NAME", { enumerable: true, get: function () { return docker_assets_1.DOCKER_CONTAINER_NAME; } });
|
|
8
|
+
Object.defineProperty(exports, "DOCKER_COMPOSE_SERVICE", { enumerable: true, get: function () { return docker_assets_1.DOCKER_COMPOSE_SERVICE; } });
|
|
9
|
+
Object.defineProperty(exports, "DOCKER_DEFAULT_DASHBOARD_PORT", { enumerable: true, get: function () { return docker_assets_1.DOCKER_DEFAULT_DASHBOARD_PORT; } });
|
|
10
|
+
Object.defineProperty(exports, "DOCKER_DEFAULT_PROXY_PORT", { enumerable: true, get: function () { return docker_assets_1.DOCKER_DEFAULT_PROXY_PORT; } });
|
|
11
|
+
Object.defineProperty(exports, "DOCKER_REMOTE_DIR", { enumerable: true, get: function () { return docker_assets_1.DOCKER_REMOTE_DIR; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/docker/index.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,iDAMyB;AALvB,sHAAA,qBAAqB,OAAA;AACrB,uHAAA,sBAAsB,OAAA;AACtB,8HAAA,6BAA6B,OAAA;AAC7B,0HAAA,yBAAyB,OAAA;AACzB,kHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Build stage: compile TypeScript and build UI
|
|
5
|
+
# =============================================================================
|
|
6
|
+
FROM node:20-bookworm-slim AS build
|
|
7
|
+
|
|
8
|
+
SHELL ["/bin/bash", "-lc"]
|
|
9
|
+
|
|
10
|
+
# Pin bun version for reproducible builds
|
|
11
|
+
ARG BUN_VERSION=1.2.21
|
|
12
|
+
ENV BUN_INSTALL=/usr/local/bun
|
|
13
|
+
ENV PATH="$BUN_INSTALL/bin:$PATH"
|
|
14
|
+
|
|
15
|
+
RUN apt-get update \
|
|
16
|
+
&& apt-get install -y --no-install-recommends curl ca-certificates unzip \
|
|
17
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
18
|
+
|
|
19
|
+
# Install specific bun version
|
|
20
|
+
RUN curl -fsSL https://bun.sh/install | bash -s "bun-v${BUN_VERSION}"
|
|
21
|
+
|
|
22
|
+
WORKDIR /app
|
|
23
|
+
|
|
24
|
+
# Dependency install layer (avoid running install scripts inside the image build)
|
|
25
|
+
COPY package.json bun.lock bunfig.toml ./
|
|
26
|
+
COPY ui/package.json ui/bun.lock ./ui/
|
|
27
|
+
|
|
28
|
+
RUN bun install --frozen-lockfile --ignore-scripts \
|
|
29
|
+
&& (cd ui && bun install --frozen-lockfile --ignore-scripts)
|
|
30
|
+
|
|
31
|
+
COPY . .
|
|
32
|
+
|
|
33
|
+
RUN bun run build:all
|
|
34
|
+
|
|
35
|
+
# Validate build artifacts exist
|
|
36
|
+
RUN test -d dist && test -d lib && echo "[OK] Build artifacts validated"
|
|
37
|
+
|
|
38
|
+
# =============================================================================
|
|
39
|
+
# Runtime stage: minimal production image
|
|
40
|
+
# =============================================================================
|
|
41
|
+
FROM node:20-bookworm-slim AS runtime
|
|
42
|
+
|
|
43
|
+
SHELL ["/bin/bash", "-lc"]
|
|
44
|
+
|
|
45
|
+
# Pin bun version for reproducible builds
|
|
46
|
+
ARG BUN_VERSION=1.2.21
|
|
47
|
+
ENV BUN_INSTALL=/usr/local/bun
|
|
48
|
+
ENV PATH="$BUN_INSTALL/bin:/home/node/.opencode/bin:$PATH"
|
|
49
|
+
|
|
50
|
+
RUN apt-get update \
|
|
51
|
+
&& apt-get install -y --no-install-recommends curl ca-certificates unzip \
|
|
52
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
53
|
+
|
|
54
|
+
# Install specific bun version
|
|
55
|
+
RUN curl -fsSL https://bun.sh/install | bash -s "bun-v${BUN_VERSION}"
|
|
56
|
+
|
|
57
|
+
WORKDIR /app
|
|
58
|
+
|
|
59
|
+
COPY package.json bun.lock ./
|
|
60
|
+
RUN bun install --frozen-lockfile --production --ignore-scripts
|
|
61
|
+
|
|
62
|
+
COPY docker/entrypoint.sh /usr/local/bin/ccs-entrypoint
|
|
63
|
+
RUN chmod +x /usr/local/bin/ccs-entrypoint
|
|
64
|
+
|
|
65
|
+
COPY --from=build /app/dist ./dist
|
|
66
|
+
COPY --from=build /app/lib ./lib
|
|
67
|
+
COPY --from=build /app/config ./config
|
|
68
|
+
COPY --from=build /app/scripts ./scripts
|
|
69
|
+
COPY --from=build /app/README.md ./README.md
|
|
70
|
+
COPY --from=build /app/LICENSE ./LICENSE
|
|
71
|
+
|
|
72
|
+
# Install AI CLI tools (using latest - pin versions in production if needed)
|
|
73
|
+
# These are optional tools for docker exec usage
|
|
74
|
+
RUN npm install -g @google/gemini-cli @vibe-kit/grok-cli @anthropic-ai/claude-code \
|
|
75
|
+
&& npm install -g @kaitranntt/ccs --force \
|
|
76
|
+
&& npm cache clean --force \
|
|
77
|
+
&& su -s /bin/bash node -c 'curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path' \
|
|
78
|
+
&& ln -sf /app/dist/ccs.js /usr/local/bin/ccs
|
|
79
|
+
|
|
80
|
+
ENV CCS_PORT=3000
|
|
81
|
+
EXPOSE 3000 8317
|
|
82
|
+
|
|
83
|
+
ENTRYPOINT ["/usr/local/bin/ccs-entrypoint"]
|
|
84
|
+
|
|
85
|
+
CMD ["bash", "-c", "node dist/ccs.js config --port ${CCS_PORT}"]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
FROM eceasy/cli-proxy-api:latest
|
|
2
|
+
|
|
3
|
+
ARG CCS_NPM_VERSION=latest
|
|
4
|
+
|
|
5
|
+
RUN apk add --no-cache \
|
|
6
|
+
curl \
|
|
7
|
+
jq \
|
|
8
|
+
nodejs \
|
|
9
|
+
npm \
|
|
10
|
+
supervisor
|
|
11
|
+
|
|
12
|
+
RUN npm install -g @kaitranntt/ccs@${CCS_NPM_VERSION} \
|
|
13
|
+
&& ln -sf /usr/local/lib/node_modules/@kaitranntt/ccs/dist/docker/docker-bootstrap.js /usr/local/bin/ccs-docker-bootstrap
|
|
14
|
+
|
|
15
|
+
COPY supervisord.conf /etc/supervisord.conf
|
|
16
|
+
COPY entrypoint-integrated.sh /entrypoint-integrated.sh
|
|
17
|
+
|
|
18
|
+
RUN chmod +x /entrypoint-integrated.sh \
|
|
19
|
+
&& mkdir -p /var/log/ccs
|
|
20
|
+
|
|
21
|
+
EXPOSE 3000 8085 8317
|
|
22
|
+
|
|
23
|
+
ENTRYPOINT ["/entrypoint-integrated.sh"]
|