1
0
mirror of https://github.com/rancher/os.git synced 2025-04-27 19:15:23 +00:00

Fix the wrong symlinks when using the custom docker engine

This commit is contained in:
niusmallnan 2019-08-15 13:17:07 +08:00 committed by niusmallnan
parent 1893c7863b
commit 3961aa6855
3 changed files with 22 additions and 25 deletions

View File

@ -137,7 +137,7 @@ func consoleInitFunc() error {
}
}
baseSymlink := symLinkEngineBinary(cfg.Rancher.Docker.Engine)
baseSymlink := symLinkEngineBinary()
if _, err := os.Stat(dockerCompletionFile); err == nil {
baseSymlink = append(baseSymlink, symlink{

View File

@ -86,12 +86,13 @@ func dockerInitAction(c *cli.Context) error {
}
cfg := config.LoadConfig()
baseSymlink := symLinkEngineBinary(cfg.Rancher.Docker.Engine)
for _, link := range baseSymlink {
for _, link := range symLinkEngineBinary() {
syscall.Unlink(link.newname)
if err := os.Symlink(link.oldname, link.newname); err != nil {
log.Error(err)
if _, err := os.Stat(link.oldname); err == nil {
if err := os.Symlink(link.oldname, link.newname); err != nil {
log.Error(err)
}
}
}

View File

@ -10,7 +10,6 @@ import (
"github.com/rancher/os/config"
"github.com/rancher/os/pkg/log"
"github.com/rancher/os/pkg/util/versions"
"github.com/pkg/errors"
)
@ -34,30 +33,27 @@ func formatImage(image string, cfg *config.CloudConfig) string {
return image
}
func symLinkEngineBinary(version string) []symlink {
versionNum := strings.Replace(strings.Replace(version, "docker-", "", -1), "-ce", "", -1)
func symLinkEngineBinary() []symlink {
baseSymlink := []symlink{
{"/usr/share/ros/os-release", "/usr/lib/os-release"},
{"/usr/share/ros/os-release", "/etc/os-release"},
{"/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 versions.GreaterThanOrEqualTo(versionNum, "18.09.0") {
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"},
}...)
// >= 18.09.0
{"/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"},
// < 18.09.0
{"/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
}