99import uuid
1010import base64
1111import traceback
12+ import urllib3
1213
1314from pyinfrabox .infrabox import validate_json
1415from pyinfrabox .docker_compose import create_from
2122from pyinfraboxutils .coverage import Parser as CoverageParser
2223from pyinfraboxutils import get_env
2324from pyinfraboxutils import get_logger
25+
26+ urllib3 .disable_warnings ()
2427logger = get_logger ('scheduler' )
2528
2629def makedirs (path ):
@@ -247,6 +250,7 @@ def get_source(self):
247250 raise Exception ('Unknown project type' )
248251
249252 c .execute (['chmod' , '-R' , 'a+rwX' , self .mount_repo_dir ])
253+ c .execute (['ls' , '-alh' , self .mount_repo_dir ], show = True )
250254
251255 def main_create_jobs (self ):
252256 c = self .console
@@ -752,6 +756,11 @@ def logout_docker_registry(self):
752756 c = self .console
753757 c .execute (['docker' , 'logout' , get_registry_name ()], show = False )
754758
759+ def run_docker_pull (self , image_name ):
760+ c = self .console
761+ cmd = ['docker' , 'pull' , image_name ]
762+ c .execute (cmd , show = True , show_cmd = False )
763+
755764 def run_docker_container (self , image_name ):
756765 c = self .console
757766 collector = StatsCollector ()
@@ -868,7 +877,7 @@ def build_docker_image(self, image_name, cache_image, target=None):
868877
869878 try :
870879 c .header ("Build image" , show = True )
871- self .get_cached_image (cache_image )
880+ cache_from = self .get_cached_image (cache_image )
872881 docker_file = os .path .normpath (os .path .join (self ._get_build_context_current_job (),
873882 self .job ['dockerfile' ]))
874883
@@ -889,7 +898,7 @@ def build_docker_image(self, image_name, cache_image, target=None):
889898
890899 if target :
891900 cmd += ['--target' , target ]
892- else :
901+ elif cache_from :
893902 cmd += ['--cache-from' , cache_image ]
894903
895904 cwd = self ._get_build_context_current_job ()
@@ -907,6 +916,10 @@ def run_job_docker_image(self, c):
907916 self ._login_source_registries ()
908917 self .run_docker_container (image_name )
909918 self ._logout_source_registries ()
919+ else :
920+ self ._login_source_registries ()
921+ self .run_docker_pull (image_name )
922+ self ._logout_source_registries ()
910923
911924 self .deploy_images (image_name )
912925 c .header ("Finalize" , show = True )
@@ -985,13 +998,14 @@ def get_cached_image(self, image_name_latest):
985998
986999 if not self .job ['definition' ].get ('cache' , {}).get ('image' , False ):
9871000 c .collect ("Not pulling cached image, because cache.image has been set to false" , show = True )
988- return
1001+ return False
9891002
9901003 c .collect ("Get cached image %s" % image_name_latest , show = True )
9911004
9921005 self .login_docker_registry ()
9931006 c .execute (['docker' , 'pull' , image_name_latest ], show = True , ignore_error = True )
9941007 self .logout_docker_registry ()
1008+ return True
9951009
9961010 def cache_docker_image (self , image_name_build , image_name_latest ):
9971011 c = self .console
0 commit comments