package main import ( "fmt" "os" "os/exec" "runtime" ) var ( // the docker binary to use dockerBinary = "docker" // the private registry image to use for tests involving the registry registryImageName = "registry" // the private registry to use for tests privateRegistryURL = "127.0.0.1:5000" dockerBasePath = "/var/lib/docker" execDriverPath = dockerBasePath + "/execdriver/native" volumesConfigPath = dockerBasePath + "/volumes" volumesStoragePath = dockerBasePath + "/vfs/dir" containerStoragePath = dockerBasePath + "/containers" workingDirectory string ) func binarySearchCommand() *exec.Cmd { if runtime.GOOS == "windows" { // Windows where.exe is included since Windows Server 2003. It accepts // wildcards, which we use here to match the development builds binary // names (such as docker-$VERSION.exe). return exec.Command("where.exe", "docker*.exe") } return exec.Command("which", "docker") } func init() { if dockerBin := os.Getenv("DOCKER_BINARY"); dockerBin != "" { dockerBinary = dockerBin } else { whichCmd := binarySearchCommand() out, _, err := runCommandWithOutput(whichCmd) if err == nil { dockerBinary = stripTrailingCharacters(out) } else { fmt.Printf("ERROR: couldn't resolve full path to the Docker binary (%v)", err) os.Exit(1) } } if registryImage := os.Getenv("REGISTRY_IMAGE"); registryImage != "" { registryImageName = registryImage } if registry := os.Getenv("REGISTRY_URL"); registry != "" { privateRegistryURL = registry } workingDirectory, _ = os.Getwd() }