From 88478f374932d4feda16ac764cb97b77739aa769 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Wed, 20 Nov 2019 12:47:27 +0200 Subject: [PATCH] e2e_node: check if image exists locally before pulling 'docker pull' is a time consuming operation. It makes sense to check if image exists locally before pulling it from a registry. Checked if image exists by running 'docker inspect'. Only pull if image doesn't exist. --- test/e2e_node/image_list.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/e2e_node/image_list.go b/test/e2e_node/image_list.go index b98e5acf756..b6b1f0f1986 100644 --- a/test/e2e_node/image_list.go +++ b/test/e2e_node/image_list.go @@ -98,7 +98,11 @@ func (dp *dockerPuller) Name() string { } func (dp *dockerPuller) Pull(image string) ([]byte, error) { - return exec.Command("docker", "pull", image).CombinedOutput() + // TODO(random-liu): Use docker client to get rid of docker binary dependency. + if exec.Command("docker", "inspect", "--type=image", image).Run() != nil { + return exec.Command("docker", "pull", image).CombinedOutput() + } + return nil, nil } type remotePuller struct {