From 83c84709443a23e1aef3b4db9b68ef123784c3d7 Mon Sep 17 00:00:00 2001 From: Radu Matei Date: Tue, 26 Feb 2019 06:17:39 +0200 Subject: [PATCH 1/2] Remove Docker socket from file mounts in driver --- pkg/driver/docker_driver.go | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/pkg/driver/docker_driver.go b/pkg/driver/docker_driver.go index eea3bbd9..1181dcda 100644 --- a/pkg/driver/docker_driver.go +++ b/pkg/driver/docker_driver.go @@ -14,7 +14,6 @@ import ( "github.com/docker/distribution/reference" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/mount" "github.com/docker/docker/api/types/strslice" "github.com/docker/docker/client" "github.com/docker/docker/pkg/jsonmessage" @@ -127,13 +126,6 @@ func (d *DockerDriver) exec(op *Operation) error { env = append(env, fmt.Sprintf("%s=%v", k, v)) } - mounts := []mount.Mount{ - { - Type: mount.TypeBind, - Source: "/var/run/docker.sock", - Target: "/var/run/docker.sock", - }, - } cfg := &container.Config{ Image: op.Image, Env: env, @@ -142,7 +134,7 @@ func (d *DockerDriver) exec(op *Operation) error { AttachStdout: true, } - hostCfg := &container.HostConfig{Mounts: mounts, AutoRemove: true} + hostCfg := &container.HostConfig{AutoRemove: true} resp, err := cli.Client().ContainerCreate(ctx, cfg, hostCfg, nil, "") switch { From e88822286634aa64ba644dfce4f420b39761c4dd Mon Sep 17 00:00:00 2001 From: Simon Ferquel Date: Fri, 8 Mar 2019 11:16:28 +0100 Subject: [PATCH 2/2] Add docker driver configuration options Signed-off-by: Simon Ferquel --- pkg/driver/docker_driver.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/driver/docker_driver.go b/pkg/driver/docker_driver.go index 1181dcda..b3803e4f 100644 --- a/pkg/driver/docker_driver.go +++ b/pkg/driver/docker_driver.go @@ -25,8 +25,9 @@ import ( type DockerDriver struct { config map[string]string // If true, this will not actually run Docker - Simulate bool - dockerCli command.Cli + Simulate bool + dockerCli command.Cli + dockerConfigurationOptions []DockerConfigurationOption } // Run executes the Docker driver @@ -39,6 +40,11 @@ func (d *DockerDriver) Handles(dt string) bool { return dt == ImageTypeDocker || dt == ImageTypeOCI } +// AddConfigurationOptions adds configuration callbacks to the driver +func (d *DockerDriver) AddConfigurationOptions(opts ...DockerConfigurationOption) { + d.dockerConfigurationOptions = append(d.dockerConfigurationOptions, opts...) +} + // Config returns the Docker driver configuration options func (d *DockerDriver) Config() map[string]string { return map[string]string{ @@ -136,6 +142,12 @@ func (d *DockerDriver) exec(op *Operation) error { hostCfg := &container.HostConfig{AutoRemove: true} + for _, opt := range d.dockerConfigurationOptions { + if err := opt(cfg, hostCfg); err != nil { + return err + } + } + resp, err := cli.Client().ContainerCreate(ctx, cfg, hostCfg, nil, "") switch { case client.IsErrNotFound(err): @@ -226,3 +238,6 @@ func generateTar(files map[string]string) (io.Reader, error) { }() return r, nil } + +// DockerConfigurationOption is an option used to customize docker driver container and host config +type DockerConfigurationOption func(*container.Config, *container.HostConfig) error