diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 12b27d68..b7eaf067 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -86,7 +86,7 @@ ARG SYSTEM_DOCKER_URL_amd64=https://github.com/rancher/os-system-docker/releases ARG SYSTEM_DOCKER_URL_arm64=https://github.com/rancher/os-system-docker/releases/download/${SYSTEM_DOCKER_VERSION}/docker-arm64-${SYSTEM_DOCKER_VERSION}.tgz ARG USER_DOCKER_VERSION=18.09.8 -ARG USER_DOCKER_ENGINE_VERSION=docker-${USER_DOCKER_VERSION}-ce +ARG USER_DOCKER_ENGINE_VERSION=docker-${USER_DOCKER_VERSION} ARG AZURE_SERVICE=false ARG PROXMOXVE_SERVICE=false diff --git a/cmd/control/engine.go b/cmd/control/engine.go index 7b2f0ed5..169d0dcc 100644 --- a/cmd/control/engine.go +++ b/cmd/control/engine.go @@ -18,6 +18,7 @@ import ( "github.com/rancher/os/pkg/log" "github.com/rancher/os/pkg/util" "github.com/rancher/os/pkg/util/network" + "github.com/rancher/os/pkg/util/versions" yaml "github.com/cloudfoundry-incubator/candiedyaml" "github.com/codegangsta/cli" @@ -364,8 +365,14 @@ func CurrentEngine() (engine string) { } if t, ok := image.(reference.NamedTagged); ok { tag := t.Tag() - if !strings.HasPrefix(tag, "1.") { - // TODO: this assumes we only do Docker ce :/ + + // compatible with some patch image tags, such as 17.12.1-1,17.06.2-1,... + tag = strings.SplitN(tag, "-", 2)[0] + + if !strings.HasPrefix(tag, "1.") && versions.LessThan(tag, "18.09.0") { + // >= 18.09.0, docker- + // < 18.09.0 and >= 16.03, docker--ce + // < 17.03, docker- tag = tag + "-ce" } return "docker-" + tag