浏览代码

Merge pull request #3263 from tianon/abspath-root

Canonicalize our root path before we try using it
Victor Vieux 11 年之前
父节点
当前提交
f768c6adb7
共有 1 个文件被更改,包括 15 次插入0 次删除
  1. 15 0
      docker/docker.go

+ 15 - 0
docker/docker.go

@@ -9,6 +9,7 @@ import (
 	"github.com/dotcloud/docker/utils"
 	"log"
 	"os"
+	"path/filepath"
 	"strings"
 )
 
@@ -69,6 +70,20 @@ func main() {
 			flag.Usage()
 			return
 		}
+
+		// Docker makes some assumptions about the "absoluteness" of flRoot
+		// ... so let's make sure it has no symlinks
+		if p, err := filepath.Abs(*flRoot); err != nil {
+			log.Fatalf("Unable to get absolute root (%s): %s", flRoot, err)
+		} else {
+			*flRoot = p
+		}
+		if p, err := filepath.EvalSymlinks(*flRoot); err != nil {
+			log.Fatalf("Unable to canonicalize root (%s): %s", flRoot, err)
+		} else {
+			*flRoot = p
+		}
+
 		eng, err := engine.New(*flRoot)
 		if err != nil {
 			log.Fatal(err)