Runtime: Automatically use docker-init if it exists

In some builds the main docker binary is not statically linked,
and as such not usable in as the .dockerinit binary, for those
cases we look for a separately shipped docker-init binary and
use that instead.
Upstream-commit: 0f5ccf934e01c75e467e6f35e883cf95bae74f2c
Component: engine
This commit is contained in:
Alexander Larsson
2013-09-26 15:08:54 +00:00
committed by Victor Vieux
parent e6cab9d688
commit 600d1bb0c4
+12 -1
View File
@@ -10,6 +10,7 @@ import (
"os"
"os/exec"
"path"
"path/filepath"
"sort"
"strings"
"time"
@@ -42,7 +43,17 @@ type Runtime struct {
var sysInitPath string
func init() {
sysInitPath = utils.SelfPath()
selfPath := utils.SelfPath()
// If we have a separate docker-init, use that, otherwise use the
// main docker binary
dir := filepath.Dir(selfPath)
dockerInitPath := filepath.Join(dir, "docker-init")
if _, err := os.Stat(dockerInitPath); err != nil {
sysInitPath = selfPath
} else {
sysInitPath = dockerInitPath
}
}
// List returns an array of all containers registered in the runtime.