From 7d868096ca394a6fa437087dee7db8a0eadcae23 Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Sat, 24 Nov 2018 20:48:31 -0500 Subject: [PATCH] use env vars to determine the docker API version (closes #71) --- README.md | 14 ++++++++++++-- image/image.go | 4 +--- utils/docker.go | 13 ------------- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 8bfea85..2fc3c68 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,6 @@ When running you'll need to include the docker client binary and socket file: ```bash docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ - -v $(which docker):/bin/docker \ wagoodman/dive:latest ``` @@ -96,7 +95,18 @@ Docker for Windows (showing PowerShell compatible line breaks; collapse to a sin ```bash docker run --rm -it ` -v /var/run/docker.sock:/var/run/docker.sock ` - -v /usr/local/bin/docker:/bin/docker ` + wagoodman/dive:latest +``` + +**Note:** depending on the version of docker you are running locally you may need to specify the docker API version as an environment variable: +```bash + DOCKER_API_VERSION=1.37 dive ... +``` +or if you are running with a docker image: +```bash +docker run --rm -it \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -e DOCKER_API_VERSION=1.37 wagoodman/dive:latest ``` diff --git a/image/image.go b/image/image.go index ce3f7d4..38497ce 100644 --- a/image/image.go +++ b/image/image.go @@ -199,12 +199,10 @@ func InitializeData(imageID string) ([]*Layer, []*filetree.FileTree, float64, fi var manifest ImageManifest var layerMap = make(map[string]*filetree.FileTree) var trees = make([]*filetree.FileTree, 0) - dockerVersion = utils.DiscoverDockerVersion() - logrus.Debug("Using docker version:", dockerVersion) // pull the image if it does not exist ctx := context.Background() - dockerClient, err := client.NewClientWithOpts(client.WithVersion(dockerVersion), client.FromEnv) + dockerClient, err := client.NewClientWithOpts(client.FromEnv) if err != nil { fmt.Println("Could not connect to the Docker daemon:" + err.Error()) utils.Exit(1) diff --git a/utils/docker.go b/utils/docker.go index c7096f5..786a3a4 100644 --- a/utils/docker.go +++ b/utils/docker.go @@ -1,7 +1,6 @@ package utils import ( - "bytes" "os" "os/exec" "strings" @@ -31,15 +30,3 @@ func cleanArgs(s []string) []string { } return r } - -func DiscoverDockerVersion() string { - cmd := exec.Command("docker", "version", "--format", "{{.Server.APIVersion}}") - cmdOutput := &bytes.Buffer{} - cmd.Stdout = cmdOutput - - err := cmd.Run() - if err != nil { - panic(err) - } - return strings.TrimSpace(string(cmdOutput.Bytes())) -}