From e92a9e0b53d296f6e0caa925a56ebbd76b20acaa Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Wed, 30 Jul 2014 06:51:03 +0000 Subject: [PATCH] Move canonical root path detection to NewDaemon Docker-DCO-1.1-Signed-off-by: Solomon Hykes (github: shykes) --- daemon/daemon.go | 11 +++++++++++ docker/docker.go | 13 +------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/daemon/daemon.go b/daemon/daemon.go index fa8f9685b..b8543e78a 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -778,6 +778,17 @@ func NewDaemonFromDirectory(config *daemonconfig.Config, eng *engine.Engine) (*D selinuxSetDisabled() } + // get the canonical path to the Docker root directory + var realRoot string + if _, err := os.Stat(config.Root); err != nil && os.IsNotExist(err) { + realRoot = config.Root + } else { + realRoot, err = utils.ReadSymlinkedDirectory(config.Root) + if err != nil { + log.Fatalf("Unable to get the full path to root (%s): %s", config.Root, err) + } + } + config.Root = realRoot // Create the root directory if it doesn't exists if err := os.MkdirAll(config.Root, 0700); err != nil && !os.IsExist(err) { return nil, err diff --git a/docker/docker.go b/docker/docker.go index 09862e687..155ce1cc5 100644 --- a/docker/docker.go +++ b/docker/docker.go @@ -120,17 +120,6 @@ func main() { } - // get the canonical path to the Docker root directory - root := *flRoot - var realRoot string - if _, err := os.Stat(root); err != nil && os.IsNotExist(err) { - realRoot = root - } else { - realRoot, err = utils.ReadSymlinkedDirectory(root) - if err != nil { - log.Fatalf("Unable to get the full path to root (%s): %s", root, err) - } - } if err := checkKernelAndArch(); err != nil { log.Fatal(err) } @@ -157,7 +146,7 @@ func main() { job := eng.Job("initserver") // include the variable here too, for the server config job.Setenv("Pidfile", *pidfile) - job.Setenv("Root", realRoot) + job.Setenv("Root", *flRoot) job.SetenvBool("AutoRestart", *flAutoRestart) job.SetenvList("Dns", flDns.GetAll()) job.SetenvList("DnsSearch", flDnsSearch.GetAll())