From 51b9804fabd9004d9f09ff0da465f3036ece1e20 Mon Sep 17 00:00:00 2001 From: cmeng Date: Wed, 8 Feb 2023 17:00:22 +1300 Subject: [PATCH] fix(updater): specify docker client version [EE-5010] (#8459) --- api/docker/client.go | 13 +++++++++++++ api/internal/upgrade/upgrade.go | 4 ++-- api/platform/platform.go | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/api/docker/client.go b/api/docker/client.go index 5b55e44dc..909fbe708 100644 --- a/api/docker/client.go +++ b/api/docker/client.go @@ -59,6 +59,19 @@ func createLocalClient(endpoint *portainer.Endpoint) (*client.Client, error) { ) } +func CreateClientFromEnv() (*client.Client, error) { + return client.NewClientWithOpts( + client.FromEnv, + client.WithVersion(dockerClientVersion), + ) +} + +func CreateSimpleClient() (*client.Client, error) { + return client.NewClientWithOpts( + client.WithVersion(dockerClientVersion), + ) +} + func createTCPClient(endpoint *portainer.Endpoint, timeout *time.Duration) (*client.Client, error) { httpCli, err := httpClient(endpoint, timeout) if err != nil { diff --git a/api/internal/upgrade/upgrade.go b/api/internal/upgrade/upgrade.go index 26d18aca9..73283972d 100644 --- a/api/internal/upgrade/upgrade.go +++ b/api/internal/upgrade/upgrade.go @@ -11,10 +11,10 @@ import ( "github.com/cbroglie/mustache" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - "github.com/docker/docker/client" "github.com/pkg/errors" libstack "github.com/portainer/docker-compose-wrapper" portainer "github.com/portainer/portainer/api" + "github.com/portainer/portainer/api/docker" "github.com/portainer/portainer/api/filesystem" "github.com/portainer/portainer/api/platform" "github.com/rs/zerolog/log" @@ -150,7 +150,7 @@ func (service *service) upgradeDocker(licenseKey, version, envType string) error } func (service *service) checkImage(ctx context.Context, image string, skipPullImage bool) error { - cli, err := client.NewClientWithOpts(client.FromEnv) + cli, err := docker.CreateClientFromEnv() if err != nil { return errors.Wrap(err, "failed to create docker client") } diff --git a/api/platform/platform.go b/api/platform/platform.go index 234b19e15..8adee3cb3 100644 --- a/api/platform/platform.go +++ b/api/platform/platform.go @@ -6,6 +6,7 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" + "github.com/portainer/portainer/api/docker" "github.com/rs/zerolog/log" ) @@ -53,7 +54,7 @@ func DetermineContainerPlatform() (ContainerPlatform, error) { return "", nil } - dockerCli, err := client.NewClientWithOpts() + dockerCli, err := docker.CreateSimpleClient() if err != nil { return "", errors.WithMessage(err, "failed to create docker client") }