4runr-os 2.10.13 → 2.10.16
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/apps/gateway/dist/apps/gateway/src/db/docker-manager.js +1 -1
- package/apps/gateway/dist/apps/gateway/src/db/docker-manager.js.map +1 -1
- package/apps/gateway/dist/apps/gateway/src/db/init.js +1 -1
- package/apps/gateway/dist/apps/gateway/src/db/init.js.map +1 -1
- package/apps/gateway/package-lock.json +1 -0
- package/apps/gateway/src/db/docker-manager.ts +226 -226
- package/apps/gateway/src/db/init.ts +5 -5
- package/dist/boot-sequence.d.ts +0 -4
- package/dist/boot-sequence.d.ts.map +1 -1
- package/dist/boot-sequence.js +13 -67
- package/dist/boot-sequence.js.map +1 -1
- package/dist/deferred-npm-install-lock.d.ts +2 -4
- package/dist/deferred-npm-install-lock.d.ts.map +1 -1
- package/dist/deferred-npm-install-lock.js +4 -28
- package/dist/deferred-npm-install-lock.js.map +1 -1
- package/dist/tui-handlers.js +32 -27
- package/dist/tui-handlers.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +14 -64
- package/dist/version-check.js.map +1 -1
- package/package.json +2 -4
- package/scripts/global-npm-guard.cjs +0 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-manager.js","sourceRoot":"","sources":["../../../../../src/db/docker-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,QAAQ,CAAC,aAAa,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,gEAAgE,EAAE;YACxF,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,eAAuB;IAC9D,QAAQ,CAAC,sBAAsB,eAAe,SAAS,EAAE;QACvD,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,eAAuB;IAC7D,QAAQ,CAAC,sBAAsB,eAAe,QAAQ,EAAE;QACtD,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,QAAQ,CAAC,8CAA8C,EAAE;gBACvD,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"docker-manager.js","sourceRoot":"","sources":["../../../../../src/db/docker-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,11 +123,11 @@ async function startDockerContainers(logger) {
|
|
|
123
123
|
const composeFilePath = path.join(dataDir, 'docker-compose.yml');
|
|
124
124
|
if (!fs.existsSync(composeFilePath)) {
|
|
125
125
|
const possiblePaths = [
|
|
126
|
+
path.join(process.cwd(), 'docker-compose.local.yml'),
|
|
126
127
|
path.join(__dirname, '../../docker-compose.local.yml'),
|
|
127
128
|
path.join(__dirname, '../../../docker-compose.local.yml'),
|
|
128
129
|
path.join(__dirname, '../../../../docker-compose.local.yml'),
|
|
129
130
|
path.join(process.cwd(), 'apps/gateway/docker-compose.local.yml'),
|
|
130
|
-
path.join(process.cwd(), 'docker-compose.local.yml'),
|
|
131
131
|
];
|
|
132
132
|
let templatePath = null;
|
|
133
133
|
for (const tryPath of possiblePaths) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../src/db/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../src/db/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -9399,6 +9399,7 @@
|
|
|
9399
9399
|
"version": "9.0.1",
|
|
9400
9400
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
|
|
9401
9401
|
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
|
|
9402
|
+
"deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
|
|
9402
9403
|
"funding": [
|
|
9403
9404
|
"https://github.com/sponsors/broofa",
|
|
9404
9405
|
"https://github.com/sponsors/ctavan"
|
|
@@ -1,226 +1,226 @@
|
|
|
1
|
-
import { execSync } from 'child_process';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Check if Docker is installed and available
|
|
5
|
-
* Works with both Docker Desktop and Docker Engine
|
|
6
|
-
*/
|
|
7
|
-
export async function isDockerAvailable(): Promise<boolean> {
|
|
8
|
-
try {
|
|
9
|
-
const result = execSync('docker --version', {
|
|
10
|
-
encoding: 'utf-8',
|
|
11
|
-
stdio: 'pipe',
|
|
12
|
-
timeout: 5000
|
|
13
|
-
});
|
|
14
|
-
return result.includes('Docker version');
|
|
15
|
-
} catch {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Check if Docker daemon is running
|
|
22
|
-
*/
|
|
23
|
-
export async function isDockerRunning(): Promise<boolean> {
|
|
24
|
-
try {
|
|
25
|
-
execSync('docker info', {
|
|
26
|
-
encoding: 'utf-8',
|
|
27
|
-
stdio: 'pipe',
|
|
28
|
-
timeout: 5000
|
|
29
|
-
});
|
|
30
|
-
return true;
|
|
31
|
-
} catch {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Check if 4Runr containers are running
|
|
38
|
-
*/
|
|
39
|
-
export async function areContainersRunning(): Promise<boolean> {
|
|
40
|
-
try {
|
|
41
|
-
const result = execSync('docker ps --filter "name=4runr-postgres" --format "{{.Names}}"', {
|
|
42
|
-
encoding: 'utf-8',
|
|
43
|
-
stdio: 'pipe',
|
|
44
|
-
timeout: 5000
|
|
45
|
-
});
|
|
46
|
-
return result.trim().includes('4runr-postgres');
|
|
47
|
-
} catch {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Start Docker Compose services
|
|
54
|
-
* @param composeFilePath - Absolute path to docker-compose.yml
|
|
55
|
-
*/
|
|
56
|
-
export async function startDockerCompose(composeFilePath: string): Promise<void> {
|
|
57
|
-
execSync(`docker compose -f "${composeFilePath}" up -d`, {
|
|
58
|
-
stdio: 'inherit',
|
|
59
|
-
timeout: 60000 // 60 seconds for pulling images if needed
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Stop Docker Compose services (preserves data volumes)
|
|
65
|
-
* @param composeFilePath - Absolute path to docker-compose.yml
|
|
66
|
-
*/
|
|
67
|
-
export async function stopDockerCompose(composeFilePath: string): Promise<void> {
|
|
68
|
-
execSync(`docker compose -f "${composeFilePath}" stop`, {
|
|
69
|
-
stdio: 'pipe',
|
|
70
|
-
timeout: 30000
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Stop 4Runr containers by name (when compose file unavailable)
|
|
76
|
-
*/
|
|
77
|
-
export async function stop4RunrContainers(): Promise<void> {
|
|
78
|
-
try {
|
|
79
|
-
if (process.platform === 'win32') {
|
|
80
|
-
execSync('docker stop 4runr-postgres 4runr-redis 2>nul', {
|
|
81
|
-
stdio: 'pipe',
|
|
82
|
-
timeout: 30000,
|
|
83
|
-
shell: process.env['COMSPEC'] || 'cmd.exe',
|
|
84
|
-
});
|
|
85
|
-
} else {
|
|
86
|
-
execSync('docker stop 4runr-postgres 4runr-redis 2>/dev/null || true', {
|
|
87
|
-
stdio: 'pipe',
|
|
88
|
-
timeout: 30000,
|
|
89
|
-
shell: '/bin/sh',
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
} catch {
|
|
93
|
-
// Ignore errors - containers might not exist
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Wait for a container to become healthy
|
|
99
|
-
* @param containerName - Name of the container to check
|
|
100
|
-
* @param timeoutMs - Maximum time to wait (default: 30 seconds)
|
|
101
|
-
*/
|
|
102
|
-
export async function waitForHealthy(containerName: string, timeoutMs: number = 30000): Promise<void> {
|
|
103
|
-
const start = Date.now();
|
|
104
|
-
|
|
105
|
-
while (Date.now() - start < timeoutMs) {
|
|
106
|
-
try {
|
|
107
|
-
// Use double quotes for Windows compatibility
|
|
108
|
-
const health = execSync(`docker inspect --format="{{.State.Health.Status}}" ${containerName}`, {
|
|
109
|
-
encoding: 'utf-8',
|
|
110
|
-
stdio: 'pipe',
|
|
111
|
-
timeout: 5000
|
|
112
|
-
}).trim();
|
|
113
|
-
|
|
114
|
-
if (health === 'healthy') {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Also accept containers without health checks that are running
|
|
119
|
-
if (health === '' || health === '<no value>') {
|
|
120
|
-
const running = execSync(`docker inspect --format="{{.State.Running}}" ${containerName}`, {
|
|
121
|
-
encoding: 'utf-8',
|
|
122
|
-
stdio: 'pipe',
|
|
123
|
-
timeout: 5000
|
|
124
|
-
}).trim();
|
|
125
|
-
|
|
126
|
-
if (running === 'true') {
|
|
127
|
-
// Give it a moment to stabilize
|
|
128
|
-
await sleep(2000);
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
} catch (err) {
|
|
133
|
-
// Container might not exist yet or Docker command failed
|
|
134
|
-
// Continue waiting
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
await sleep(1000);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
throw new Error(`Container ${containerName} did not become healthy within ${timeoutMs}ms`);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Check if a port is in use
|
|
145
|
-
* @param port - Port number to check
|
|
146
|
-
*/
|
|
147
|
-
export async function isPortInUse(port: number): Promise<boolean> {
|
|
148
|
-
try {
|
|
149
|
-
// Try to list containers using this port
|
|
150
|
-
const result = execSync(`docker ps --filter "publish=${port}" --format "{{.Names}}"`, {
|
|
151
|
-
encoding: 'utf-8',
|
|
152
|
-
stdio: 'pipe',
|
|
153
|
-
timeout: 5000
|
|
154
|
-
});
|
|
155
|
-
return result.trim().length > 0;
|
|
156
|
-
} catch {
|
|
157
|
-
// If command fails, assume port might be in use by non-Docker process
|
|
158
|
-
// Let Docker compose handle the conflict
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Get container logs
|
|
165
|
-
* @param containerName - Name of the container
|
|
166
|
-
* @param lines - Number of lines to retrieve (default: 50)
|
|
167
|
-
*/
|
|
168
|
-
export function getContainerLogs(containerName: string, lines: number = 50): string {
|
|
169
|
-
try {
|
|
170
|
-
return execSync(`docker logs --tail ${lines} ${containerName}`, {
|
|
171
|
-
encoding: 'utf-8',
|
|
172
|
-
stdio: 'pipe',
|
|
173
|
-
timeout: 10000
|
|
174
|
-
});
|
|
175
|
-
} catch (err) {
|
|
176
|
-
return `Failed to retrieve logs: ${err instanceof Error ? err.message : String(err)}`;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Sleep helper
|
|
182
|
-
*/
|
|
183
|
-
function sleep(ms: number): Promise<void> {
|
|
184
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Docker status information
|
|
189
|
-
*/
|
|
190
|
-
export interface DockerStatus {
|
|
191
|
-
available: boolean;
|
|
192
|
-
running: boolean;
|
|
193
|
-
containersRunning: boolean;
|
|
194
|
-
error?: string;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Get comprehensive Docker status
|
|
199
|
-
*/
|
|
200
|
-
export async function getDockerStatus(): Promise<DockerStatus> {
|
|
201
|
-
const status: DockerStatus = {
|
|
202
|
-
available: false,
|
|
203
|
-
running: false,
|
|
204
|
-
containersRunning: false
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
try {
|
|
208
|
-
status.available = await isDockerAvailable();
|
|
209
|
-
if (!status.available) {
|
|
210
|
-
status.error = 'Docker not installed';
|
|
211
|
-
return status;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
status.running = await isDockerRunning();
|
|
215
|
-
if (!status.running) {
|
|
216
|
-
status.error = 'Docker daemon not running';
|
|
217
|
-
return status;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
status.containersRunning = await areContainersRunning();
|
|
221
|
-
return status;
|
|
222
|
-
} catch (err) {
|
|
223
|
-
status.error = err instanceof Error ? err.message : String(err);
|
|
224
|
-
return status;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Check if Docker is installed and available
|
|
5
|
+
* Works with both Docker Desktop and Docker Engine
|
|
6
|
+
*/
|
|
7
|
+
export async function isDockerAvailable(): Promise<boolean> {
|
|
8
|
+
try {
|
|
9
|
+
const result = execSync('docker --version', {
|
|
10
|
+
encoding: 'utf-8',
|
|
11
|
+
stdio: 'pipe',
|
|
12
|
+
timeout: 5000
|
|
13
|
+
});
|
|
14
|
+
return result.includes('Docker version');
|
|
15
|
+
} catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Check if Docker daemon is running
|
|
22
|
+
*/
|
|
23
|
+
export async function isDockerRunning(): Promise<boolean> {
|
|
24
|
+
try {
|
|
25
|
+
execSync('docker info', {
|
|
26
|
+
encoding: 'utf-8',
|
|
27
|
+
stdio: 'pipe',
|
|
28
|
+
timeout: 5000
|
|
29
|
+
});
|
|
30
|
+
return true;
|
|
31
|
+
} catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Check if 4Runr containers are running
|
|
38
|
+
*/
|
|
39
|
+
export async function areContainersRunning(): Promise<boolean> {
|
|
40
|
+
try {
|
|
41
|
+
const result = execSync('docker ps --filter "name=4runr-postgres" --format "{{.Names}}"', {
|
|
42
|
+
encoding: 'utf-8',
|
|
43
|
+
stdio: 'pipe',
|
|
44
|
+
timeout: 5000
|
|
45
|
+
});
|
|
46
|
+
return result.trim().includes('4runr-postgres');
|
|
47
|
+
} catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Start Docker Compose services
|
|
54
|
+
* @param composeFilePath - Absolute path to docker-compose.yml
|
|
55
|
+
*/
|
|
56
|
+
export async function startDockerCompose(composeFilePath: string): Promise<void> {
|
|
57
|
+
execSync(`docker compose -f "${composeFilePath}" up -d`, {
|
|
58
|
+
stdio: 'inherit',
|
|
59
|
+
timeout: 60000 // 60 seconds for pulling images if needed
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Stop Docker Compose services (preserves data volumes)
|
|
65
|
+
* @param composeFilePath - Absolute path to docker-compose.yml
|
|
66
|
+
*/
|
|
67
|
+
export async function stopDockerCompose(composeFilePath: string): Promise<void> {
|
|
68
|
+
execSync(`docker compose -f "${composeFilePath}" stop`, {
|
|
69
|
+
stdio: 'pipe',
|
|
70
|
+
timeout: 30000
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Stop 4Runr containers by name (when compose file unavailable)
|
|
76
|
+
*/
|
|
77
|
+
export async function stop4RunrContainers(): Promise<void> {
|
|
78
|
+
try {
|
|
79
|
+
if (process.platform === 'win32') {
|
|
80
|
+
execSync('docker stop 4runr-postgres 4runr-redis 2>nul', {
|
|
81
|
+
stdio: 'pipe',
|
|
82
|
+
timeout: 30000,
|
|
83
|
+
shell: process.env['COMSPEC'] || 'cmd.exe',
|
|
84
|
+
});
|
|
85
|
+
} else {
|
|
86
|
+
execSync('docker stop 4runr-postgres 4runr-redis 2>/dev/null || true', {
|
|
87
|
+
stdio: 'pipe',
|
|
88
|
+
timeout: 30000,
|
|
89
|
+
shell: '/bin/sh',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
} catch {
|
|
93
|
+
// Ignore errors - containers might not exist
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Wait for a container to become healthy
|
|
99
|
+
* @param containerName - Name of the container to check
|
|
100
|
+
* @param timeoutMs - Maximum time to wait (default: 30 seconds)
|
|
101
|
+
*/
|
|
102
|
+
export async function waitForHealthy(containerName: string, timeoutMs: number = 30000): Promise<void> {
|
|
103
|
+
const start = Date.now();
|
|
104
|
+
|
|
105
|
+
while (Date.now() - start < timeoutMs) {
|
|
106
|
+
try {
|
|
107
|
+
// Use double quotes for Windows compatibility
|
|
108
|
+
const health = execSync(`docker inspect --format="{{.State.Health.Status}}" ${containerName}`, {
|
|
109
|
+
encoding: 'utf-8',
|
|
110
|
+
stdio: 'pipe',
|
|
111
|
+
timeout: 5000
|
|
112
|
+
}).trim();
|
|
113
|
+
|
|
114
|
+
if (health === 'healthy') {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Also accept containers without health checks that are running
|
|
119
|
+
if (health === '' || health === '<no value>') {
|
|
120
|
+
const running = execSync(`docker inspect --format="{{.State.Running}}" ${containerName}`, {
|
|
121
|
+
encoding: 'utf-8',
|
|
122
|
+
stdio: 'pipe',
|
|
123
|
+
timeout: 5000
|
|
124
|
+
}).trim();
|
|
125
|
+
|
|
126
|
+
if (running === 'true') {
|
|
127
|
+
// Give it a moment to stabilize
|
|
128
|
+
await sleep(2000);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
} catch (err) {
|
|
133
|
+
// Container might not exist yet or Docker command failed
|
|
134
|
+
// Continue waiting
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
await sleep(1000);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
throw new Error(`Container ${containerName} did not become healthy within ${timeoutMs}ms`);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Check if a port is in use
|
|
145
|
+
* @param port - Port number to check
|
|
146
|
+
*/
|
|
147
|
+
export async function isPortInUse(port: number): Promise<boolean> {
|
|
148
|
+
try {
|
|
149
|
+
// Try to list containers using this port
|
|
150
|
+
const result = execSync(`docker ps --filter "publish=${port}" --format "{{.Names}}"`, {
|
|
151
|
+
encoding: 'utf-8',
|
|
152
|
+
stdio: 'pipe',
|
|
153
|
+
timeout: 5000
|
|
154
|
+
});
|
|
155
|
+
return result.trim().length > 0;
|
|
156
|
+
} catch {
|
|
157
|
+
// If command fails, assume port might be in use by non-Docker process
|
|
158
|
+
// Let Docker compose handle the conflict
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Get container logs
|
|
165
|
+
* @param containerName - Name of the container
|
|
166
|
+
* @param lines - Number of lines to retrieve (default: 50)
|
|
167
|
+
*/
|
|
168
|
+
export function getContainerLogs(containerName: string, lines: number = 50): string {
|
|
169
|
+
try {
|
|
170
|
+
return execSync(`docker logs --tail ${lines} ${containerName}`, {
|
|
171
|
+
encoding: 'utf-8',
|
|
172
|
+
stdio: 'pipe',
|
|
173
|
+
timeout: 10000
|
|
174
|
+
});
|
|
175
|
+
} catch (err) {
|
|
176
|
+
return `Failed to retrieve logs: ${err instanceof Error ? err.message : String(err)}`;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Sleep helper
|
|
182
|
+
*/
|
|
183
|
+
function sleep(ms: number): Promise<void> {
|
|
184
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Docker status information
|
|
189
|
+
*/
|
|
190
|
+
export interface DockerStatus {
|
|
191
|
+
available: boolean;
|
|
192
|
+
running: boolean;
|
|
193
|
+
containersRunning: boolean;
|
|
194
|
+
error?: string;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Get comprehensive Docker status
|
|
199
|
+
*/
|
|
200
|
+
export async function getDockerStatus(): Promise<DockerStatus> {
|
|
201
|
+
const status: DockerStatus = {
|
|
202
|
+
available: false,
|
|
203
|
+
running: false,
|
|
204
|
+
containersRunning: false
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
try {
|
|
208
|
+
status.available = await isDockerAvailable();
|
|
209
|
+
if (!status.available) {
|
|
210
|
+
status.error = 'Docker not installed';
|
|
211
|
+
return status;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
status.running = await isDockerRunning();
|
|
215
|
+
if (!status.running) {
|
|
216
|
+
status.error = 'Docker daemon not running';
|
|
217
|
+
return status;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
status.containersRunning = await areContainersRunning();
|
|
221
|
+
return status;
|
|
222
|
+
} catch (err) {
|
|
223
|
+
status.error = err instanceof Error ? err.message : String(err);
|
|
224
|
+
return status;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
@@ -196,11 +196,11 @@ async function startDockerContainers(logger: any): Promise<void> {
|
|
|
196
196
|
if (!fs.existsSync(composeFilePath)) {
|
|
197
197
|
// Try multiple possible template locations
|
|
198
198
|
const possiblePaths = [
|
|
199
|
-
path.join(
|
|
200
|
-
path.join(__dirname, '
|
|
201
|
-
path.join(__dirname, '
|
|
202
|
-
path.join(
|
|
203
|
-
path.join(process.cwd(), 'docker-compose.local.yml'),
|
|
199
|
+
path.join(process.cwd(), 'docker-compose.local.yml'), // npm run start cwd = apps/gateway (global + repo)
|
|
200
|
+
path.join(__dirname, '../../docker-compose.local.yml'), // dist/db -> apps/gateway
|
|
201
|
+
path.join(__dirname, '../../../docker-compose.local.yml'), // dist/src/db or nested
|
|
202
|
+
path.join(__dirname, '../../../../docker-compose.local.yml'),
|
|
203
|
+
path.join(process.cwd(), 'apps/gateway/docker-compose.local.yml'),
|
|
204
204
|
];
|
|
205
205
|
|
|
206
206
|
let templatePath: string | null = null;
|
package/dist/boot-sequence.d.ts
CHANGED
|
@@ -12,10 +12,6 @@ interface BootCheckResult {
|
|
|
12
12
|
* Kill any stale 4r/Gateway processes that might lock files
|
|
13
13
|
*/
|
|
14
14
|
export declare function killStaleProcesses(): void;
|
|
15
|
-
/**
|
|
16
|
-
* Wait for any in-progress npm install -g 4runr-os to complete
|
|
17
|
-
*/
|
|
18
|
-
export declare function waitForInProgressUpdate(maxWaitMs?: number): Promise<boolean>;
|
|
19
15
|
/**
|
|
20
16
|
* Perform full boot sequence health check
|
|
21
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot-sequence.d.ts","sourceRoot":"","sources":["../src/boot-sequence.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"boot-sequence.d.ts","sourceRoot":"","sources":["../src/boot-sequence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,UAAU,eAAe;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA8BzC;AAuED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAmCpE"}
|