@@ -15,7 +15,17 @@ def container_exists(name):
1515 return name in result .stdout .strip ().splitlines ()
1616
1717def start_db_container (dbms , cfg , script_log , docker_log ):
18- image = cfg .get ("image" )
18+ image_name = cfg .get ("image_name" )
19+ tag = cfg .get ("tag" )
20+ if not image_name :
21+ script_log .error ("Missing 'image_name' field in config.json" )
22+ sys .exit (1 )
23+ if not tag or str (tag ).strip () == "" :
24+ script_log .error ("Missing 'tag' field in config.json" )
25+ sys .exit (1 )
26+ else :
27+ image = f"{ image_name } :{ tag } "
28+
1929 container_name = cfg .get ("container_name" , f"{ dbms } -sqlancer" )
2030 env_dict = cfg .get ("env" , {})
2131 startup_cmd = cfg .get ("startup_cmd" , [])
@@ -111,6 +121,7 @@ def test_single(cfg, script_log, docker_log, sqlancer_log, run_dir, use_cache=Fa
111121
112122 if cfg ["embedded" ] == "no" :
113123 remove_container (cfg ["container_name" ], script_log , docker_log )
124+ remove_images (script_log , docker_log )
114125 script_log .info ("==============================Executing test==============================" )
115126
116127def remove_container (container_name , script_log , docker_log ):
@@ -121,6 +132,13 @@ def remove_container(container_name, script_log, docker_log):
121132 except subprocess .CalledProcessError as e :
122133 script_log .warning ("Container removing failed: %s" , container_name )
123134
135+ def remove_images (script_log , docker_log ):
136+ script_log .info ("Removing outdated images..." )
137+ try :
138+ run_command (["docker" , "image" , "prune" , "-f" ], docker_log )
139+ script_log .info ("Images removed" )
140+ except subprocess .CalledProcessError as e :
141+ script_log .warning ("Images removing failed" )
124142
125143def test_custom_dockerfile (dockerfile_path , cfg , script_log , docker_log , sqlancer_log , run_dir , use_cache = False ):
126144 script_log .info ("==============================Executing test==============================" )
@@ -143,5 +161,6 @@ def test_custom_dockerfile(dockerfile_path, cfg, script_log, docker_log, sqlance
143161 )
144162
145163 remove_container (cfg ["container_name" ], script_log , docker_log )
164+ remove_images (script_log , docker_log )
146165 script_log .info ("==============================Executing test==============================" )
147166
0 commit comments