From 2fead2a50fe74ab70b17912d14f67aa65f393470 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Thu, 22 Aug 2019 16:39:21 +0200 Subject: [PATCH] restore support for env variables to configure proxy regression introduced by b34f34 close #39654 Signed-off-by: Nicolas De Loof (cherry picked from commit e25e077a2030aa7c438a993085e6aefcd337ca19) Signed-off-by: Sebastiaan van Stijn --- cli/command/cli_test.go | 19 +++++++++++++++++++ cli/context/docker/load.go | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cli/command/cli_test.go b/cli/command/cli_test.go index 926d43f2dd..34d0c219ca 100644 --- a/cli/command/cli_test.go +++ b/cli/command/cli_test.go @@ -6,6 +6,7 @@ import ( "crypto/x509" "fmt" "io/ioutil" + "net/http" "os" "runtime" "testing" @@ -79,6 +80,24 @@ func TestNewAPIClientFromFlagsWithAPIVersionFromEnv(t *testing.T) { assert.Check(t, is.Equal(customVersion, apiclient.ClientVersion())) } +func TestNewAPIClientFromFlagsWithHttpProxyEnv(t *testing.T) { + defer env.Patch(t, "HTTP_PROXY", "http://proxy.acme.com:1234")() + defer env.Patch(t, "DOCKER_HOST", "tcp://docker.acme.com:2376")() + + opts := &flags.CommonOptions{} + configFile := &configfile.ConfigFile{} + apiclient, err := NewAPIClientFromFlags(opts, configFile) + assert.NilError(t, err) + transport, ok := apiclient.HTTPClient().Transport.(*http.Transport) + assert.Assert(t, ok) + assert.Assert(t, transport.Proxy != nil) + request, err := http.NewRequest(http.MethodGet, "tcp://docker.acme.com:2376", nil) + assert.NilError(t, err) + url, err := transport.Proxy(request) + assert.NilError(t, err) + assert.Check(t, is.Equal("http://proxy.acme.com:1234", url.String())) +} + type fakeClient struct { client.Client pingFunc func() (types.Ping, error) diff --git a/cli/context/docker/load.go b/cli/context/docker/load.go index 126fa2f2e8..730e131c2b 100644 --- a/cli/context/docker/load.go +++ b/cli/context/docker/load.go @@ -104,8 +104,8 @@ func (c *Endpoint) ClientOpts() ([]client.Opt, error) { return nil, err } result = append(result, - client.WithHost(c.Host), withHTTPClient(tlsConfig), + client.WithHost(c.Host), ) } else {