Skip to content

Commit d88f777

Browse files
Merge pull request #64 from henhal/docker-support
Add support for dockerized DynamoDBLocal
2 parents 57457ba + 32439ea commit d88f777

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

dynamodb/starter.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,28 @@ var starter = {
3939
additionalArgs.push('-help');
4040
}
4141

42-
var args = ['-Djava.library.path=' + db_dir + '/DynamoDBLocal_lib', '-jar', jar, '-port', port];
43-
args = preArgs.concat(args.concat(additionalArgs));
42+
var args = ['-jar', jar, '-port', port];
43+
var executable;
44+
var cwd;
4445

45-
var child = spawn('java', args, {
46-
cwd: db_dir,
46+
if (options.docker) {
47+
executable = process.env.DOCKER_PATH || 'docker';
48+
preArgs = ['run', '-d', '-p', port + ':' + port, process.env.DOCKER_IMAGE || 'amazon/dynamodb-local'];
49+
} else {
50+
executable = 'java';
51+
preArgs.push('-Djava.library.path=' + db_dir + '/DynamoDBLocal_lib');
52+
cwd = db_dir;
53+
}
54+
55+
args = preArgs.concat(args.concat(additionalArgs));
56+
var child = spawn(executable, args, {
57+
cwd: cwd,
4758
env: process.env,
4859
stdio: ['pipe', 'pipe', process.stderr]
4960
});
5061

5162
if (!child.pid) {
52-
throw new Error('Unable to start DynamoDB Local process! Make sure you have java executable in your path.');
63+
throw new Error('Unable to start DynamoDB Local process! Make sure you have ' + executable + ' executable in your path.');
5364
}
5465

5566
child.on('error', function (code) {

0 commit comments

Comments
 (0)