Merge pull request #1877 from hashicorp/b-expand-docker-vols

Expand env vars in docker volume paths
This commit is contained in:
Michael Schurter
2016-10-27 11:32:45 -07:00
committed by GitHub
2 changed files with 8 additions and 3 deletions

View File

@@ -405,7 +405,10 @@ func (d *DockerDriver) containerBinds(driverConfig *DockerDriverConfig, alloc *a
binds := []string{allocDirBind, taskLocalBind, secretDirBind}
volumesEnabled := d.config.ReadBoolDefault(dockerVolumesConfigOption, dockerVolumesConfigDefault)
for _, userbind := range driverConfig.Volumes {
// Expand environment variables in volume paths
expandedVols := d.taskEnv.ParseAndReplace(driverConfig.Volumes)
for _, userbind := range expandedVols {
parts := strings.Split(userbind, ":")
if len(parts) < 2 {
return nil, fmt.Errorf("invalid docker volume: %q", userbind)

View File

@@ -950,16 +950,18 @@ func setupDockerVolumes(t *testing.T, cfg *config.Config, hostpath string) (*str
randfn := fmt.Sprintf("test-%d", rand.Int())
hostfile := filepath.Join(hostpath, randfn)
containerFile := filepath.Join("/mnt/vol", randfn)
containerPath := "/mnt/vol"
containerFile := filepath.Join(containerPath, randfn)
task := &structs.Task{
Name: "ls",
Env: map[string]string{"VOL_PATH": containerPath},
Config: map[string]interface{}{
"image": "busybox",
"load": []string{"busybox.tar"},
"command": "touch",
"args": []string{containerFile},
"volumes": []string{fmt.Sprintf("%s:/mnt/vol", hostpath)},
"volumes": []string{fmt.Sprintf("%s:${VOL_PATH}", hostpath)},
},
LogConfig: &structs.LogConfig{
MaxFiles: 10,