Skip to content

Commit 010331e

Browse files
author
Ilya Radchenko
committed
Merge pull request #34 from phiros/add_volume_host_dir_binds
allow host dir to volume bindings
2 parents 0afea58 + 36675c6 commit 010331e

File tree

4 files changed

+16
-2
lines changed

4 files changed

+16
-2
lines changed

config/config.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ <h3>Docker Runner</h3>
55
<input ng-model="config.docker_host" placeholder="Docker remote host (defaults to env var DOCKER_HOST)" class="input-block-level input-xxlarge" type="text">
66
<input ng-model="config.image" placeholder="Docker image to use. Default: strider/strider-docker-slave" class="input-block-level input-xxlarge" type="text">
77
<input ng-model="config.dns" placeholder="comma separated list of dns servers, default: 8.8.8.8" class="input-block-level input-xxlarge" type="text">
8+
<p>
9+
Use the following to bind host directories to volumes in a docker container:
10+
</p>
11+
<input ng-model="config.docker_volumeBinds" placeholder="comma seperated list of bindings e.g.: /some/host/dir:/in_container:rw,/other:/foo:rw, Default: ''" class="input-block-level input-xxlarge" type="text">
812
<label class="checkbox">
913
<input type="checkbox" ng-model="config.privileged">
1014
Should the image run in privileged mode? WARNING: Don't run insecure code in privileged mode.

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = {
1818
port: Number,
1919
socketPath: String,
2020
dns: String,
21-
docker_host: String
21+
docker_host: String,
22+
docker_volumeBinds: String
2223
}
2324
}

lib/create-container.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ function create (createOptions, docker, config, done) {
5656

5757
// start, and wait for it to be done
5858
container.start({
59+
Binds: config.docker_volumeBinds,
5960
Privileged: config.privileged,
6061
PublishAllPorts: config.publishPorts,
6162
Dns: config.dns,
@@ -134,4 +135,4 @@ module.exports = function (createOptions, docker, config, done) {
134135
create(createOptions, docker, config, done)
135136
}
136137
]);
137-
}
138+
}

lib/run.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ module.exports = function (job, provider, plugins, config, next) {
2828
if (slaveConfig.dns && slaveConfig.dns.length > 6) {
2929
slaveConfig.dns = slaveConfig.dns.split(",")
3030
}
31+
if (slaveConfig.docker_volumeBinds && slaveConfig.docker_volumeBinds.indexOf(',') > -1) {
32+
slaveConfig.docker_volumeBinds = slaveConfig
33+
.docker_volumeBinds
34+
.split(",")
35+
.map(function (volBinding) {
36+
return volBinding.trim();
37+
});
38+
}
3139
config.io.emit('job.status.command.comment', job._id, {
3240
comment: 'Creating docker container from ' + slaveConfig.image,
3341
plugin: 'docker',

0 commit comments

Comments
 (0)