@@ -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
2425Examples:
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
108111async 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