Procházet zdrojové kódy

Make the docker dir cleaner (#3316)

Mike Smith před 7 roky
rodič
revize
f211cada87

+ 6 - 2
toolset/benchmark/framework_test.py

@@ -23,6 +23,7 @@ from threading import Event
 
 from utils import header
 from utils import gather_docker_dependencies
+from utils import find_docker_file
 
 # Cross-platform colored text
 from colorama import Fore, Back, Style
@@ -200,8 +201,11 @@ class FrameworkTest:
 
     for dependency in deps:
       docker_file = os.path.join(self.directory, dependency + ".dockerfile")
-      if not os.path.exists(docker_file):
-        docker_file = os.path.join(docker_dir, dependency + ".dockerfile")
+      if not docker_file or not os.path.exists(docker_file):
+        docker_file = find_docker_file(docker_dir, dependency + ".dockerfile")
+      if not docker_file:
+        tee_output(prefix, "Docker build failed; %s could not be found; terminating\n" % (dependency + ".dockerfile"))
+        return 1
       p = subprocess.Popen(["docker", "build", "-f", docker_file, "-t", dependency, os.path.dirname(docker_file)],
           stdout=subprocess.PIPE,
           stderr=subprocess.STDOUT)

+ 12 - 2
toolset/benchmark/utils.py

@@ -3,9 +3,16 @@ import os
 import glob
 import json
 import socket
+import fnmatch
 
 from ast import literal_eval
 
+def find_docker_file(path, pattern):
+    for root, dirs, files in os.walk(path):
+        for name in files:
+            if fnmatch.fnmatch(name, pattern):
+                return os.path.join(root, name)
+
 def gather_docker_dependencies(docker_file):
     '''
     Gathers all the known docker dependencies for the given docker image.
@@ -14,6 +21,8 @@ def gather_docker_dependencies(docker_file):
     from setup.linux import setup_util
     deps = []
 
+    docker_dir = os.path.join(setup_util.get_fwroot(), "toolset", "setup", "linux", "docker")
+
     if os.path.exists(docker_file):
         with open(docker_file) as fp:
             line = fp.readline()
@@ -26,8 +35,9 @@ def gather_docker_dependencies(docker_file):
                         deps.append(depTokens[0])
                         dep_docker_file = os.path.join(os.path.dirname(docker_file), depTokens[0] + ".dockerfile")
                         if not os.path.exists(dep_docker_file):
-                            dep_docker_file = os.path.join(setup_util.get_fwroot(),
-                                "toolset", "setup", "linux", "docker", depTokens[0] + ".dockerfile")
+                            # dep_docker_file = os.path.join(setup_util.get_fwroot(),
+                            #     "toolset", "setup", "linux", "docker", depTokens[0] + ".dockerfile")
+                            dep_docker_file = find_docker_file(docker_dir, depTokens[0] + ".dockerfile")
                         deps.extend(gather_docker_dependencies(dep_docker_file))
 
     return deps

+ 0 - 0
toolset/setup/linux/docker/java.dockerfile → toolset/setup/linux/docker/languages/java.dockerfile


+ 0 - 0
toolset/setup/linux/docker/resin.dockerfile → toolset/setup/linux/docker/webservers/resin.dockerfile