def analyze_full_image(full_image, options): """If we are able to load a full image after a build, we can run an analysis on it""" # set up for analysis crun.setup(full_image) # analyze image cimage.analyze(full_image, options) # clean up after analysis rootfs.clean_up() # we should now be able to set imported layers lock.set_imported_layers(full_image) # save to the cache common.save_to_cache(full_image) return [full_image]
def analyze_base_image(base_image, options): """If we are unable to load the full image, we will try to analyze the base image and try to extrapolate""" # set up for analysis crun.setup(base_image) # analyze image cimage.analyze(base_image, options) # clean up rootfs.clean_up() # save the base image to cache common.save_to_cache(base_image) # let's try to figure out what packages were going to be installed in # the dockerfile anyway stub_image = get_dockerfile_packages() return [base_image, stub_image]
def execute_invoke(image_obj, args): """Execution path for checking command library scripts""" # we set up the image for analysis run.setup(image_obj) # we now mount the whole container image mount_container_image(image_obj, args.driver) # invoke commands in chroot invoke_script(args) # undo the mounts if args.driver in ('fuse', 'overlay2'): rootfs.unmount_rootfs() # cleanup rootfs.clean_up() if not args.keep_wd: prep.clean_image_tars(image_obj)