def load_base_image(): '''Create base image from dockerfile instructions and return the image''' base_image, dockerfile_lines = dhelper.get_dockerfile_base() # try to get image metadata if not container.check_image(base_image.repotag): # if no base image is found, give a warning and continue if not container.pull_image(base_image.repotag): logger.warning( errors.cannot_find_image.format(imagetag=base_image.repotag)) try: base_image.load_image() except NameError as error: logger.warning('Error in loading base image: ' + str(error)) base_image.origins.add_notice_to_origins(dockerfile_lines, Notice(str(error), 'error')) except subprocess.CalledProcessError as error: logger.warning('Error in loading base image: ' + str(error.output, 'utf-8')) base_image.origins.add_notice_to_origins( dockerfile_lines, Notice(str(error.output, 'utf-8'), 'error')) except IOError as error: logger.warning('Error in loading base image: ' + str(error)) base_image.origins.add_notice_to_origin(dockerfile_lines, Notice(str(error), 'error')) return base_image
def setup(dockerfile=None, image_tag_string=None): '''Any initial setup''' # generate random names for image, container, and tag general.initialize_names() # load the cache cache.load() # load dockerfile if present if dockerfile: docker.load_docker_commands(dockerfile) # check if the docker image is present if image_tag_string: if not container.check_image(image_tag_string): logger.fatal(errors.cannot_find_image.format( imagetag=image_tag_string)) sys.exit() # create temporary working directory if not os.path.exists(constants.temp_folder): os.mkdir(constants.temp_folder) # set up folders for rootfs operations rootfs.set_up()
def setUp(self): '''Using a specific image here. If this test fails due to the image not being found anymore, pick a different image to test against For now use Docker to pull the image from Dockerhub''' if not check_image('debian:jessie'): try: docker_command(pull, 'debian:jessie') except subprocess.CalledProcessError as error: print(error.output) self.image = DockerImage('debian:jessie') # constants for this image self.id = ('2fe79f06fa6d3fa9e877b4415fb189f89ca8a4ff4a954a3d84b2c84129' '9cd127') self.layer = ('4bcdffd70da292293d059d2435c7056711fab2655f8b74f48ad0abe' '042b63687') self.no_layers = 1 self.created_by = ('/bin/sh -c #(nop) ADD file:1dd78a123212328bdc72ef7' '888024ea27fe141a72e24e0ea7c3c92b63b73d8d1 in / ') self.instruction = ('ADD file:1dd78a123212328bdc72ef7888024ea27fe141a7' '2e24e0ea7c3c92b63b73d8d1 in /')