Beispiel #1
0
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
Beispiel #2
0
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 /')