From 44523e1cc352378eea3d1d27064fe8aa7f7f71aa Mon Sep 17 00:00:00 2001 From: Radek Maciaszek Date: Fri, 4 Aug 2017 17:08:32 +0100 Subject: [PATCH] Create docker client from environment variables DOCKER_HOST, DOCKER_TLS_VERIFY, and DOCKER_CERT_PATH --- pkg/utils/docker/client.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/utils/docker/client.go b/pkg/utils/docker/client.go index c2bc1a95..fc93c9d7 100644 --- a/pkg/utils/docker/client.go +++ b/pkg/utils/docker/client.go @@ -18,17 +18,28 @@ package docker import ( "github.com/fsouza/go-dockerclient" + "os" ) // DockerClient connects to Docker client on host func DockerClient() (*docker.Client, error) { - // Default end-point, HTTP + TLS support to be added in the future - // Eventually functionality to specify end-point added to command-line - endpoint := "unix:///var/run/docker.sock" + var ( + err error + client *docker.Client + ) - // Use the unix socker end-point. No support for TLS (yet) - client, err := docker.NewClient(endpoint) + dockerHost := os.Getenv("DOCKER_HOST") + + if len(dockerHost) > 0 { + // Create client instance from Docker's environment variables: + // DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH + client, err = docker.NewClientFromEnv() + } else { + // Default unix socker end-point + endpoint := "unix:///var/run/docker.sock" + client, err = docker.NewClient(endpoint) + } if err != nil { return client, err }