Skip to content

Commit 868b198

Browse files
authored
Merge pull request #909 from constructive-io/devin/1774562080-pgpm-docker-shm-size
feat(pgpm): add --shm-size flag to docker start (default 2g)
2 parents deeabec + 5084fc6 commit 868b198

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

pgpm/cli/src/commands/docker.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ Options:
1919
--port <port> Host port mapping (default: 5432)
2020
--user <user> PostgreSQL user (default: postgres)
2121
--password <pass> PostgreSQL password (default: password)
22+
--shm-size <size> Shared memory size for container (default: 2g)
2223
--recreate Remove and recreate container on start
2324
2425
Examples:
2526
pgpm docker start Start default PostgreSQL container
2627
pgpm docker start --port 5433 Start on custom port
28+
pgpm docker start --shm-size 4g Start with 4GB shared memory
2729
pgpm docker start --recreate Remove and recreate container
2830
pgpm docker stop Stop PostgreSQL container
2931
`;
@@ -34,6 +36,7 @@ interface DockerRunOptions {
3436
port: number;
3537
user: string;
3638
password: string;
39+
shmSize: string;
3740
recreate?: boolean;
3841
}
3942

@@ -106,7 +109,7 @@ async function containerExists(name: string): Promise<boolean> {
106109
}
107110

108111
async function startContainer(options: DockerRunOptions): Promise<void> {
109-
const { name, image, port, user, password, recreate } = options;
112+
const { name, image, port, user, password, shmSize, recreate } = options;
110113

111114
const dockerAvailable = await checkDockerAvailable();
112115
if (!dockerAvailable) {
@@ -147,6 +150,7 @@ async function startContainer(options: DockerRunOptions): Promise<void> {
147150
'run',
148151
'-d',
149152
'--name', name,
153+
'--shm-size', shmSize,
150154
'-e', `POSTGRES_USER=${user}`,
151155
'-e', `POSTGRES_PASSWORD=${password}`,
152156
'-p', `${port}:5432`,
@@ -215,11 +219,12 @@ export default async (
215219
const port = typeof args.port === 'number' ? args.port : 5432;
216220
const user = (args.user as string) || 'postgres';
217221
const password = (args.password as string) || 'password';
222+
const shmSize = (args['shm-size'] as string) || (args.shmSize as string) || '2g';
218223
const recreate = args.recreate === true;
219224

220225
switch (subcommand) {
221226
case 'start':
222-
await startContainer({ name, image, port, user, password, recreate });
227+
await startContainer({ name, image, port, user, password, shmSize, recreate });
223228
break;
224229

225230
case 'stop':

0 commit comments

Comments
 (0)