From 8c21d2acd33c2bbaba224e19fbef30a3ba8788df Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Fri, 8 Nov 2013 02:49:32 +0000 Subject: [PATCH] Set DOCKER_DRIVER to override the choice of driver (aufs, devicemapper or dummy) --- graphdriver/driver.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/graphdriver/driver.go b/graphdriver/driver.go index 1f777ccde7..bebbf02d3d 100644 --- a/graphdriver/driver.go +++ b/graphdriver/driver.go @@ -3,6 +3,7 @@ package graphdriver import ( "fmt" "github.com/dotcloud/docker/archive" + "os" ) @@ -45,18 +46,27 @@ func Register(name string, initFunc InitFunc) error { return nil } +func getDriver(name, home string) (Driver, error) { + if initFunc, exists := drivers[name]; exists { + return initFunc(home) + } + return nil, fmt.Errorf("No such driver: %s", name) +} + func New(root string) (Driver, error) { var driver Driver var lastError error + // Use environment variable DOCKER_DRIVER to force a choice of driver + if name := os.Getenv("DOCKER_DRIVER"); name != "" { + return getDriver(name, root) + } // Check for priority drivers first for _, name := range priority { - if initFunc, exists := drivers[name]; exists { - driver, lastError = initFunc(root) - if lastError != nil { - continue - } - return driver, nil + driver, lastError = getDriver(name, root) + if lastError != nil { + continue } + return driver, nil } // Check all registered drivers if no priority driver is found