aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/docker/docker.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 2d67bbd..c9f20d8 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -306,14 +306,18 @@ class Docker(object):
checksum = _text_checksum(_dockerfile_preprocess(dockerfile))
if registry is not None:
- # see if we can fetch a cache copy, may fail...
- pull_args = ["pull", "%s/%s" % (registry, tag)]
- if self._do(pull_args, quiet=quiet) == 0:
+ sources = re.findall("FROM qemu\/(.*)", dockerfile)
+ # Fetch any cache layers we can, may fail
+ for s in sources:
+ pull_args = ["pull", "%s/qemu/%s" % (registry, s)]
+ if self._do(pull_args, quiet=quiet) != 0:
+ registry = None
+ break
+ # Make substitutions
+ if registry is not None:
dockerfile = dockerfile.replace("FROM qemu/",
"FROM %s/qemu/" %
(registry))
- else:
- registry = None
tmp_df = tempfile.NamedTemporaryFile(mode="w+t",
encoding='utf-8',
@@ -339,6 +343,8 @@ class Docker(object):
build_args += ["--build-arg", "BUILDKIT_INLINE_CACHE=1"]
if registry is not None:
+ pull_args = ["pull", "%s/%s" % (registry, tag)]
+ self._do(pull_args, quiet=quiet)
cache = "%s/%s" % (registry, tag)
build_args += ["--cache-from", cache]
build_args += argv