Skip to content

Commit 709b30c

Browse files
committed
Add dockerVolumes option in package in order to mount additional volumes
1 parent 9689d1e commit 709b30c

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ Options:
143143
-e, --environment [development] Choose environment {dev, staging, production}
144144
-x, --excludeGlobs [event.json] Space-separated glob pattern(s) for additional exclude files (e.g. "event.json dotenv.sample")
145145
-D, --prebuiltDirectory [] Prebuilt directory
146+
-v, --dockerVolumes [] Additional docker volumes to mount. Each volume definition has to be separated by a space (e.g. "$HOME/.gitconfig:/etc/gitconfig $HOME/.ssh:/root/.ssh"
146147
```
147148

148149
#### deploy

bin/node-lambda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ const AWS_DLQ_TARGET_ARN = (() => {
5858
})()
5959
const PROXY = process.env.PROXY || process.env.http_proxy || ''
6060
const ENABLE_RUN_MULTIPLE_EVENTS = true
61+
const DOCKER_VOLUMES = process.env.DOCKER_VOLUMES || ''
6162

6263
program
6364
.command('deploy')
@@ -119,6 +120,7 @@ program
119120
.option('-x, --excludeGlobs [EXCLUDE_GLOBS]',
120121
'Space-separated glob pattern(s) for additional exclude files (e.g. "event.json dotenv.sample")', EXCLUDE_GLOBS)
121122
.option('-D, --prebuiltDirectory [PREBUILT_DIRECTORY]', 'Prebuilt directory', PREBUILT_DIRECTORY)
123+
.option('-v, --dockerVolumes [DOCKER_VOLUMES]', 'Additional docker volumes to mount. Each volume definition has to be separated by a space (e.g. "$HOME/.gitconfig:/etc/gitconfig $HOME/.ssh:/root/.ssh")', DOCKER_VOLUMES)
122124
.action((prg) => lambda.package(prg))
123125

124126
program

lib/main.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -343,10 +343,20 @@ so you can easily test run multiple events.
343343

344344
_npmInstall (program, codeDirectory) {
345345
const dockerBaseOptions = [
346-
'run', '--rm', '-v', `${fs.realpathSync(codeDirectory)}:/var/task`, '-w', '/var/task',
347-
program.dockerImage,
348-
'npm', '-s', 'install', '--production'
346+
'run', '--rm',
347+
'-v', `${fs.realpathSync(codeDirectory)}:/var/task`,
348+
'-w', '/var/task'
349349
]
350+
351+
let dockerVolumesOptions = []
352+
program.dockerVolumes && program.dockerVolumes.split(' ').forEach((volume) => {
353+
dockerVolumesOptions = dockerVolumesOptions.concat(['-v', volume])
354+
})
355+
356+
const dockerCommand = [program.dockerImage, 'npm', '-s', 'install', '--production']
357+
358+
const dockerOptions = dockerBaseOptions.concat(dockerVolumesOptions).concat(dockerCommand)
359+
350360
const npmInstallBaseOptions = [
351361
'-s',
352362
'install',
@@ -362,12 +372,12 @@ so you can easily test run multiple events.
362372
if (process.platform === 'win32') {
363373
return {
364374
command: 'cmd.exe',
365-
options: ['/c', 'docker'].concat(dockerBaseOptions)
375+
options: ['/c', 'docker'].concat(dockerOptions)
366376
}
367377
}
368378
return {
369379
command: 'docker',
370-
options: dockerBaseOptions
380+
options: dockerOptions
371381
}
372382
}
373383

0 commit comments

Comments
 (0)