From d6acb8483c937711ff274bc5db040dd37d4bca28 Mon Sep 17 00:00:00 2001 From: Nima Kaviani Date: Mon, 26 Nov 2018 18:44:17 -0800 Subject: [PATCH] internal address for docker manager to be configurable - if DOCKER_SERVER is provided, use that as the docker server internal address - otherwise fall back to 127.0.0.1 as the default docker server --- pkg/containermanager/docker/docker_manager.go | 8 +++++++- .../docker/docker_manager_test.go | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pkg/containermanager/docker/docker_manager.go b/pkg/containermanager/docker/docker_manager.go index 5f6b7e50..8824f853 100644 --- a/pkg/containermanager/docker/docker_manager.go +++ b/pkg/containermanager/docker/docker_manager.go @@ -3,6 +3,7 @@ package docker import ( "context" "io/ioutil" + "os" "code.cloudfoundry.org/lager" "github.com/cloudfoundry-incubator/blockhead/pkg/containermanager" @@ -113,8 +114,13 @@ func (dc dockerContainerManager) Bind(ctx context.Context, bindingConfig contain bindings[port.Port()] = containerBindings } + dockerServer := os.Getenv("DOCKER_SERVER") + if dockerServer == "" { + dockerServer = "127.0.0.1" + } + response := containermanager.ContainerInfo{ - InternalAddress: "127.0.0.1", + InternalAddress: dockerServer, ExternalAddress: dc.externalAddress, Bindings: bindings, } diff --git a/pkg/containermanager/docker/docker_manager_test.go b/pkg/containermanager/docker/docker_manager_test.go index 3a951530..2a095b7d 100644 --- a/pkg/containermanager/docker/docker_manager_test.go +++ b/pkg/containermanager/docker/docker_manager_test.go @@ -3,6 +3,7 @@ package docker_test import ( "context" "errors" + "os" "code.cloudfoundry.org/lager/lagertest" "github.com/cloudfoundry-incubator/blockhead/pkg/containermanager" @@ -160,6 +161,22 @@ var _ = Describe("DockerManager", func() { bindResponse, _ := manager.Bind(context.TODO(), bindConfig) Expect(bindResponse).To(Equal(expectedBindResponse)) }) + + Context("when DOCKER_SERVER is set", func() { + const BindAddress = "192.168.100.100" + BeforeEach(func() { + os.Setenv("DOCKER_SERVER", BindAddress) + }) + + AfterEach(func() { + os.Unsetenv("DOCKER_SERVER") + }) + + It("returns the value for the DOCKER_SERVER", func() { + bindResponse, _ := manager.Bind(context.TODO(), bindConfig) + Expect(bindResponse.InternalAddress).To(Equal(BindAddress)) + }) + }) }) }) })