pgpm 4.14.0 → 4.15.0
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/commands/docker.js +29 -7
- package/esm/commands/docker.js +29 -7
- package/package.json +2 -2
package/commands/docker.js
CHANGED
|
@@ -24,7 +24,9 @@ PostgreSQL Options:
|
|
|
24
24
|
--shm-size <size> Shared memory size for container (default: 2g)
|
|
25
25
|
|
|
26
26
|
Additional Services:
|
|
27
|
-
--minio Include MinIO S3-compatible object storage (
|
|
27
|
+
--minio Include MinIO S3-compatible object storage (API: 9000, Console: 9001)
|
|
28
|
+
--ollama Include Ollama LLM inference server (API: 11434)
|
|
29
|
+
--gpu Enable NVIDIA GPU passthrough for Ollama (requires NVIDIA Container Toolkit)
|
|
28
30
|
|
|
29
31
|
General Options:
|
|
30
32
|
--help, -h Show this help message
|
|
@@ -33,26 +35,42 @@ General Options:
|
|
|
33
35
|
Examples:
|
|
34
36
|
pgpm docker start Start PostgreSQL only
|
|
35
37
|
pgpm docker start --minio Start PostgreSQL + MinIO
|
|
38
|
+
pgpm docker start --ollama Start PostgreSQL + Ollama (CPU)
|
|
39
|
+
pgpm docker start --ollama --gpu Start PostgreSQL + Ollama (NVIDIA GPU)
|
|
36
40
|
pgpm docker start --port 5433 Start on custom port
|
|
37
41
|
pgpm docker start --shm-size 4g Start with 4GB shared memory
|
|
38
42
|
pgpm docker start --recreate Remove and recreate containers
|
|
39
43
|
pgpm docker start --recreate --minio Recreate PostgreSQL + MinIO
|
|
40
44
|
pgpm docker stop Stop PostgreSQL
|
|
41
45
|
pgpm docker stop --minio Stop PostgreSQL + MinIO
|
|
46
|
+
pgpm docker stop --ollama Stop PostgreSQL + Ollama
|
|
42
47
|
pgpm docker ls List services and status
|
|
43
48
|
`;
|
|
44
49
|
const ADDITIONAL_SERVICES = {
|
|
45
50
|
minio: {
|
|
46
51
|
name: 'minio',
|
|
47
52
|
image: 'minio/minio',
|
|
48
|
-
ports: [
|
|
53
|
+
ports: [
|
|
54
|
+
{ host: 9000, container: 9000 },
|
|
55
|
+
{ host: 9001, container: 9001 },
|
|
56
|
+
],
|
|
49
57
|
env: {
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
MINIO_ROOT_USER: 'minioadmin',
|
|
59
|
+
MINIO_ROOT_PASSWORD: 'minioadmin',
|
|
52
60
|
},
|
|
53
|
-
command: ['server', '/data'],
|
|
61
|
+
command: ['server', '/data', '--console-address', ':9001'],
|
|
54
62
|
volumes: [{ name: 'minio-data', containerPath: '/data' }],
|
|
55
63
|
},
|
|
64
|
+
ollama: {
|
|
65
|
+
name: 'ollama',
|
|
66
|
+
image: 'ollama/ollama',
|
|
67
|
+
ports: [
|
|
68
|
+
{ host: 11434, container: 11434 },
|
|
69
|
+
],
|
|
70
|
+
env: {},
|
|
71
|
+
volumes: [{ name: 'ollama-data', containerPath: '/root/.ollama' }],
|
|
72
|
+
gpuCapable: true,
|
|
73
|
+
},
|
|
56
74
|
};
|
|
57
75
|
function run(command, args, options = {}) {
|
|
58
76
|
return new Promise((resolve, reject) => {
|
|
@@ -189,7 +207,7 @@ async function stopContainer(name) {
|
|
|
189
207
|
await (0, inquirerer_1.cliExitWithError)(`Failed to stop container "${name}"`);
|
|
190
208
|
}
|
|
191
209
|
}
|
|
192
|
-
async function startService(service, recreate) {
|
|
210
|
+
async function startService(service, recreate, gpu = false) {
|
|
193
211
|
const { name, image, ports, env: serviceEnv, command } = service;
|
|
194
212
|
const exists = await containerExists(name);
|
|
195
213
|
const running = await isContainerRunning(name);
|
|
@@ -233,6 +251,9 @@ async function startService(service, recreate) {
|
|
|
233
251
|
runArgs.push('-v', `${vol.name}:${vol.containerPath}`);
|
|
234
252
|
}
|
|
235
253
|
}
|
|
254
|
+
if (gpu && service.gpuCapable) {
|
|
255
|
+
runArgs.push('--gpus', 'all');
|
|
256
|
+
}
|
|
236
257
|
runArgs.push(image);
|
|
237
258
|
if (command) {
|
|
238
259
|
runArgs.push(...command);
|
|
@@ -306,12 +327,13 @@ exports.default = async (argv, _prompter, _options) => {
|
|
|
306
327
|
const password = args.password || 'password';
|
|
307
328
|
const shmSize = args['shm-size'] || args.shmSize || '2g';
|
|
308
329
|
const recreate = args.recreate === true;
|
|
330
|
+
const gpu = args.gpu === true;
|
|
309
331
|
const includedServices = resolveServiceFlags(args);
|
|
310
332
|
switch (subcommand) {
|
|
311
333
|
case 'start':
|
|
312
334
|
await startContainer({ name, image, port, user, password, shmSize, recreate });
|
|
313
335
|
for (const service of includedServices) {
|
|
314
|
-
await startService(service, recreate);
|
|
336
|
+
await startService(service, recreate, gpu);
|
|
315
337
|
}
|
|
316
338
|
break;
|
|
317
339
|
case 'stop':
|
package/esm/commands/docker.js
CHANGED
|
@@ -22,7 +22,9 @@ PostgreSQL Options:
|
|
|
22
22
|
--shm-size <size> Shared memory size for container (default: 2g)
|
|
23
23
|
|
|
24
24
|
Additional Services:
|
|
25
|
-
--minio Include MinIO S3-compatible object storage (
|
|
25
|
+
--minio Include MinIO S3-compatible object storage (API: 9000, Console: 9001)
|
|
26
|
+
--ollama Include Ollama LLM inference server (API: 11434)
|
|
27
|
+
--gpu Enable NVIDIA GPU passthrough for Ollama (requires NVIDIA Container Toolkit)
|
|
26
28
|
|
|
27
29
|
General Options:
|
|
28
30
|
--help, -h Show this help message
|
|
@@ -31,26 +33,42 @@ General Options:
|
|
|
31
33
|
Examples:
|
|
32
34
|
pgpm docker start Start PostgreSQL only
|
|
33
35
|
pgpm docker start --minio Start PostgreSQL + MinIO
|
|
36
|
+
pgpm docker start --ollama Start PostgreSQL + Ollama (CPU)
|
|
37
|
+
pgpm docker start --ollama --gpu Start PostgreSQL + Ollama (NVIDIA GPU)
|
|
34
38
|
pgpm docker start --port 5433 Start on custom port
|
|
35
39
|
pgpm docker start --shm-size 4g Start with 4GB shared memory
|
|
36
40
|
pgpm docker start --recreate Remove and recreate containers
|
|
37
41
|
pgpm docker start --recreate --minio Recreate PostgreSQL + MinIO
|
|
38
42
|
pgpm docker stop Stop PostgreSQL
|
|
39
43
|
pgpm docker stop --minio Stop PostgreSQL + MinIO
|
|
44
|
+
pgpm docker stop --ollama Stop PostgreSQL + Ollama
|
|
40
45
|
pgpm docker ls List services and status
|
|
41
46
|
`;
|
|
42
47
|
const ADDITIONAL_SERVICES = {
|
|
43
48
|
minio: {
|
|
44
49
|
name: 'minio',
|
|
45
50
|
image: 'minio/minio',
|
|
46
|
-
ports: [
|
|
51
|
+
ports: [
|
|
52
|
+
{ host: 9000, container: 9000 },
|
|
53
|
+
{ host: 9001, container: 9001 },
|
|
54
|
+
],
|
|
47
55
|
env: {
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
MINIO_ROOT_USER: 'minioadmin',
|
|
57
|
+
MINIO_ROOT_PASSWORD: 'minioadmin',
|
|
50
58
|
},
|
|
51
|
-
command: ['server', '/data'],
|
|
59
|
+
command: ['server', '/data', '--console-address', ':9001'],
|
|
52
60
|
volumes: [{ name: 'minio-data', containerPath: '/data' }],
|
|
53
61
|
},
|
|
62
|
+
ollama: {
|
|
63
|
+
name: 'ollama',
|
|
64
|
+
image: 'ollama/ollama',
|
|
65
|
+
ports: [
|
|
66
|
+
{ host: 11434, container: 11434 },
|
|
67
|
+
],
|
|
68
|
+
env: {},
|
|
69
|
+
volumes: [{ name: 'ollama-data', containerPath: '/root/.ollama' }],
|
|
70
|
+
gpuCapable: true,
|
|
71
|
+
},
|
|
54
72
|
};
|
|
55
73
|
function run(command, args, options = {}) {
|
|
56
74
|
return new Promise((resolve, reject) => {
|
|
@@ -187,7 +205,7 @@ async function stopContainer(name) {
|
|
|
187
205
|
await cliExitWithError(`Failed to stop container "${name}"`);
|
|
188
206
|
}
|
|
189
207
|
}
|
|
190
|
-
async function startService(service, recreate) {
|
|
208
|
+
async function startService(service, recreate, gpu = false) {
|
|
191
209
|
const { name, image, ports, env: serviceEnv, command } = service;
|
|
192
210
|
const exists = await containerExists(name);
|
|
193
211
|
const running = await isContainerRunning(name);
|
|
@@ -231,6 +249,9 @@ async function startService(service, recreate) {
|
|
|
231
249
|
runArgs.push('-v', `${vol.name}:${vol.containerPath}`);
|
|
232
250
|
}
|
|
233
251
|
}
|
|
252
|
+
if (gpu && service.gpuCapable) {
|
|
253
|
+
runArgs.push('--gpus', 'all');
|
|
254
|
+
}
|
|
234
255
|
runArgs.push(image);
|
|
235
256
|
if (command) {
|
|
236
257
|
runArgs.push(...command);
|
|
@@ -304,12 +325,13 @@ export default async (argv, _prompter, _options) => {
|
|
|
304
325
|
const password = args.password || 'password';
|
|
305
326
|
const shmSize = args['shm-size'] || args.shmSize || '2g';
|
|
306
327
|
const recreate = args.recreate === true;
|
|
328
|
+
const gpu = args.gpu === true;
|
|
307
329
|
const includedServices = resolveServiceFlags(args);
|
|
308
330
|
switch (subcommand) {
|
|
309
331
|
case 'start':
|
|
310
332
|
await startContainer({ name, image, port, user, password, shmSize, recreate });
|
|
311
333
|
for (const service of includedServices) {
|
|
312
|
-
await startService(service, recreate);
|
|
334
|
+
await startService(service, recreate, gpu);
|
|
313
335
|
}
|
|
314
336
|
break;
|
|
315
337
|
case 'stop':
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pgpm",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.15.0",
|
|
4
4
|
"author": "Constructive <developers@constructive.io>",
|
|
5
5
|
"description": "PostgreSQL Package Manager - Database migration and package management CLI",
|
|
6
6
|
"main": "index.js",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"pg",
|
|
77
77
|
"pgsql"
|
|
78
78
|
],
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "d4ab16de23b2434617e820fcffaec0f008a7b6a0"
|
|
80
80
|
}
|