瀏覽代碼

Merge pull request #23772 from mlaventure/fix-missing-runtime-on-upgrade

Fix missing container runtime on upgrade
Vincent Demeester 9 年之前
父節點
當前提交
f8656a6e37
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      daemon/start_linux.go

+ 8 - 1
daemon/start_linux.go

@@ -5,14 +5,21 @@ import (
 
 	"github.com/docker/docker/container"
 	"github.com/docker/docker/libcontainerd"
+	"github.com/docker/engine-api/types"
 )
 
 func (daemon *Daemon) getLibcontainerdCreateOptions(container *container.Container) (*[]libcontainerd.CreateOption, error) {
 	createOptions := []libcontainerd.CreateOption{}
 
+	// Ensure a runtime has been assigned to this container
+	if container.HostConfig.Runtime == "" {
+		container.HostConfig.Runtime = types.DefaultRuntimeName
+		container.ToDisk()
+	}
+
 	rt := daemon.configStore.GetRuntime(container.HostConfig.Runtime)
 	if rt == nil {
-		return nil, fmt.Errorf("No such runtime '%s'", container.HostConfig.Runtime)
+		return nil, fmt.Errorf("no such runtime '%s'", container.HostConfig.Runtime)
 	}
 	createOptions = append(createOptions, libcontainerd.WithRuntime(rt.Path, rt.Args))