@@ -250,6 +250,7 @@ def get_source(self):
250250 raise Exception ('Unknown project type' )
251251
252252 c .execute (['chmod' , '-R' , 'a+rwX' , self .mount_repo_dir ])
253+ c .execute (['ls' , '-alh' , self .mount_repo_dir ], show = True )
253254
254255 def main_create_jobs (self ):
255256 c = self .console
@@ -755,6 +756,11 @@ def logout_docker_registry(self):
755756 c = self .console
756757 c .execute (['docker' , 'logout' , get_registry_name ()], show = False )
757758
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+
758764 def run_docker_container (self , image_name ):
759765 c = self .console
760766 collector = StatsCollector ()
@@ -871,7 +877,7 @@ def build_docker_image(self, image_name, cache_image, target=None):
871877
872878 try :
873879 c .header ("Build image" , show = True )
874- self .get_cached_image (cache_image )
880+ cache_from = self .get_cached_image (cache_image )
875881 docker_file = os .path .normpath (os .path .join (self ._get_build_context_current_job (),
876882 self .job ['dockerfile' ]))
877883
@@ -892,7 +898,7 @@ def build_docker_image(self, image_name, cache_image, target=None):
892898
893899 if target :
894900 cmd += ['--target' , target ]
895- else :
901+ elif cache_from :
896902 cmd += ['--cache-from' , cache_image ]
897903
898904 cwd = self ._get_build_context_current_job ()
@@ -910,6 +916,10 @@ def run_job_docker_image(self, c):
910916 self ._login_source_registries ()
911917 self .run_docker_container (image_name )
912918 self ._logout_source_registries ()
919+ else :
920+ self ._login_source_registries ()
921+ self .run_docker_pull (image_name )
922+ self ._logout_source_registries ()
913923
914924 self .deploy_images (image_name )
915925 c .header ("Finalize" , show = True )
@@ -988,13 +998,14 @@ def get_cached_image(self, image_name_latest):
988998
989999 if not self .job ['definition' ].get ('cache' , {}).get ('image' , False ):
9901000 c .collect ("Not pulling cached image, because cache.image has been set to false" , show = True )
991- return
1001+ return False
9921002
9931003 c .collect ("Get cached image %s" % image_name_latest , show = True )
9941004
9951005 self .login_docker_registry ()
9961006 c .execute (['docker' , 'pull' , image_name_latest ], show = True , ignore_error = True )
9971007 self .logout_docker_registry ()
1008+ return True
9981009
9991010 def cache_docker_image (self , image_name_build , image_name_latest ):
10001011 c = self .console
0 commit comments