From f30b6f4df2d715ca46ef78f41e26335028655e44 Mon Sep 17 00:00:00 2001 From: Jason-ZW Date: Fri, 4 Jan 2019 15:22:32 +0800 Subject: [PATCH] Add docker-18.09.0 --- cmd/control/console_init.go | 13 +------------ cmd/control/docker_init.go | 11 +++++++++++ cmd/control/util.go | 27 +++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/cmd/control/console_init.go b/cmd/control/console_init.go index 07247f04..c138046d 100644 --- a/cmd/control/console_init.go +++ b/cmd/control/console_init.go @@ -131,18 +131,7 @@ func consoleInitFunc() error { } } - baseSymlink := []symlink{ - {"/var/lib/rancher/engine/docker", "/usr/bin/docker"}, - {"/var/lib/rancher/engine/docker-init", "/usr/bin/docker-init"}, - {"/var/lib/rancher/engine/docker-containerd", "/usr/bin/docker-containerd"}, - {"/var/lib/rancher/engine/docker-containerd-ctr", "/usr/bin/docker-containerd-ctr"}, - {"/var/lib/rancher/engine/docker-containerd-shim", "/usr/bin/docker-containerd-shim"}, - {"/var/lib/rancher/engine/dockerd", "/usr/bin/dockerd"}, - {"/var/lib/rancher/engine/docker-proxy", "/usr/bin/docker-proxy"}, - {"/var/lib/rancher/engine/docker-runc", "/usr/bin/docker-runc"}, - {"/usr/share/ros/os-release", "/usr/lib/os-release"}, - {"/usr/share/ros/os-release", "/etc/os-release"}, - } + baseSymlink := symLinkEngineBinary(cfg.Rancher.Docker.Engine) if _, err := os.Stat(dockerCompletionFile); err == nil { baseSymlink = append(baseSymlink, symlink{ diff --git a/cmd/control/docker_init.go b/cmd/control/docker_init.go index e0f127c8..8c4fac86 100644 --- a/cmd/control/docker_init.go +++ b/cmd/control/docker_init.go @@ -9,6 +9,7 @@ import ( "syscall" "time" + "github.com/rancher/os/config" "github.com/rancher/os/pkg/log" "github.com/rancher/os/pkg/util" @@ -84,6 +85,16 @@ func dockerInitAction(c *cli.Context) error { } } + cfg := config.LoadConfig() + baseSymlink := symLinkEngineBinary(cfg.Rancher.Docker.Engine) + + for _, link := range baseSymlink { + syscall.Unlink(link.newname) + if err := os.Symlink(link.oldname, link.newname); err != nil { + log.Error(err) + } + } + args := []string{ "bash", "-c", diff --git a/cmd/control/util.go b/cmd/control/util.go index 2a3abc99..cdcc5ea5 100644 --- a/cmd/control/util.go +++ b/cmd/control/util.go @@ -28,3 +28,30 @@ func formatImage(image string, cfg *config.CloudConfig) string { } return image } + +func symLinkEngineBinary(version string) []symlink { + baseSymlink := []symlink{ + {"/var/lib/rancher/engine/docker", "/usr/bin/docker"}, + {"/var/lib/rancher/engine/dockerd", "/usr/bin/dockerd"}, + {"/var/lib/rancher/engine/docker-init", "/usr/bin/docker-init"}, + {"/var/lib/rancher/engine/docker-proxy", "/usr/bin/docker-proxy"}, + {"/usr/share/ros/os-release", "/usr/lib/os-release"}, + {"/usr/share/ros/os-release", "/etc/os-release"}, + } + if strings.Contains(version, "18.09") { + baseSymlink = append(baseSymlink, []symlink{ + {"/var/lib/rancher/engine/containerd", "/usr/bin/containerd"}, + {"/var/lib/rancher/engine/ctr", "/usr/bin/ctr"}, + {"/var/lib/rancher/engine/containerd-shim", "/usr/bin/containerd-shim"}, + {"/var/lib/rancher/engine/runc", "/usr/bin/runc"}, + }...) + } else { + baseSymlink = append(baseSymlink, []symlink{ + {"/var/lib/rancher/engine/docker-containerd", "/usr/bin/docker-containerd"}, + {"/var/lib/rancher/engine/docker-containerd-ctr", "/usr/bin/docker-containerd-ctr"}, + {"/var/lib/rancher/engine/docker-containerd-shim", "/usr/bin/docker-containerd-shim"}, + {"/var/lib/rancher/engine/docker-runc", "/usr/bin/docker-runc"}, + }...) + } + return baseSymlink +}