summaryrefslogtreecommitdiff
path: root/runtime/execdriver/execdrivers/execdrivers.go
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/execdriver/execdrivers/execdrivers.go')
-rw-r--r--runtime/execdriver/execdrivers/execdrivers.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/runtime/execdriver/execdrivers/execdrivers.go b/runtime/execdriver/execdrivers/execdrivers.go
new file mode 100644
index 0000000000..9e277c86df
--- /dev/null
+++ b/runtime/execdriver/execdrivers/execdrivers.go
@@ -0,0 +1,23 @@
+package execdrivers
+
+import (
+ "fmt"
+ "github.com/dotcloud/docker/pkg/sysinfo"
+ "github.com/dotcloud/docker/runtime/execdriver"
+ "github.com/dotcloud/docker/runtime/execdriver/lxc"
+ "github.com/dotcloud/docker/runtime/execdriver/native"
+ "path"
+)
+
+func NewDriver(name, root, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
+ switch name {
+ case "lxc":
+ // we want to five the lxc driver the full docker root because it needs
+ // to access and write config and template files in /var/lib/docker/containers/*
+ // to be backwards compatible
+ return lxc.NewDriver(root, sysInfo.AppArmor)
+ case "native":
+ return native.NewDriver(path.Join(root, "execdriver", "native"), initPath)
+ }
+ return nil, fmt.Errorf("unknown exec driver %s", name)
+}