components/docker/files/docker-support
author Jesse Butler <jesse.butler@oracle.com>
Mon, 17 Oct 2016 16:13:44 -0700
changeset 7119 2f82d964b8be
parent 7118 42f3be2cf0ae
child 7177 86d14f182e82
permissions -rw-r--r--
24830297 drop unneeded metadata layers from base image
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     1
#!/usr/bin/python2.7
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     2
#
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     3
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     4
#
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     5
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     6
import argparse
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     7
import os
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
     8
import shutil
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     9
from subprocess import Popen, PIPE
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    10
import sys
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    11
import tempfile
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    12
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    13
ROOTFS_ARCHIVE  = "rootfs.tar.gz"
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    14
DOCKERFILE = """FROM scratch
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    15
ADD %(archive)s /
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    16
CMD /bin/bash
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    17
"""
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    18
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    19
class DockerSupportCmd(object):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    20
    def __init__(self, cmd, verbose=False):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    21
        self.cmd = cmd
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    22
        self.verbose = verbose
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    23
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    24
    def run(self, expect_nonzero=None):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    25
        if self.verbose:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    26
            out = None
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    27
        else:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    28
            out = PIPE
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    29
        p = Popen(self.cmd, stdout=out, stderr=PIPE)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    30
        output, error = p.communicate()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    31
        if not expect_nonzero and p.returncode != 0:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    32
            raise RuntimeError(error)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    33
        return output
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    34
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    35
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    36
def docker_is_online():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    37
    try:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    38
        return DockerSupportCmd(['/usr/bin/svcs', '-Ho', 'state',
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    39
            'docker']).run().strip() == 'online'
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    40
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    41
        raise RuntimeError("Unable to determine version: %s" % err)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    42
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    43
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    44
def get_os_version():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    45
    try:
6525
0acea8dd9c9a 24368928 docker-support create-base-image sets misleading os version tag
Jesse Butler <jesse.butler@oracle.com>
parents: 6524
diff changeset
    46
        output = DockerSupportCmd(['/usr/bin/pkg', 'info', '-r',
0acea8dd9c9a 24368928 docker-support create-base-image sets misleading os version tag
Jesse Butler <jesse.butler@oracle.com>
parents: 6524
diff changeset
    47
            'osnet/osnet-incorporation']).run()
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    48
        for line in map(str.strip, output.splitlines()):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    49
            if line.startswith("Branch"):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    50
                return line.split(":")[1].strip()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    51
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    52
        raise RuntimeError("Unable to determine version: %s" % err)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    53
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    54
6526
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    55
def create_rootfs_archive(args):
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    56
    cmd = ['/usr/lib/brand/solaris-oci/mkimage-solaris']
6526
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    57
    if args.devbuild:
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    58
        cmd.append('-D')
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    59
    if args.profile:
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    60
        if not os.path.exists(args.profile):
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    61
            raise RuntimeError("'%s' not found" % args.profile)
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    62
        cmd.extend(['-c', args.profile])
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    63
    try:
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    64
        # build rootfs, send output to stdout
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    65
        DockerSupportCmd(cmd, verbose=True).run()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    66
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    67
        raise RuntimeError("mkimage-solaris failure: %s" % err)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    68
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    69
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    70
def create_base_image(args):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    71
    if not docker_is_online():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    72
        raise SystemExit("Docker service not online, is Docker configured?")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    73
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    74
    try:
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    75
        temp_dir = tempfile.mkdtemp(dir="/system/volatile")
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    76
    except Exception as err:
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    77
        raise SystemExit("Could not create build directory: %s" % err)
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    78
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    79
    try:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    80
        print "Creating container rootfs from host publishers..."
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    81
        create_rootfs_archive(args)
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    82
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    83
        raise SystemExit("Failed to create rootfs: %s" % err)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    84
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    85
    shutil.move(ROOTFS_ARCHIVE, temp_dir)
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    86
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    87
    prev_dir = os.getcwd()
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    88
    os.chdir(temp_dir)
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    89
    try:
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    90
        osversion = get_os_version()
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    91
        with open("Dockerfile", "w") as dockerfile:
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    92
            dockerfile.write(DOCKERFILE %
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    93
                {"archive": ROOTFS_ARCHIVE, "osversion": osversion})
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    94
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    95
        tag = "solaris:%s" % osversion
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    96
        print "Creating Docker base image '%s'..." % tag
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
    97
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    98
        DockerSupportCmd(
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    99
            ["/usr/bin/docker", "build", "-t", tag, "."], verbose=True).run()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   100
        DockerSupportCmd(
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   101
            ["/usr/bin/docker", "tag", tag, "solaris:latest"]).run()
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
   102
        print "Build complete."
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   103
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   104
        raise SystemExit("Failed image build: %s" % err)
7118
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
   105
    finally:
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
   106
        os.chdir(prev_dir)
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
   107
        assert os.path.exists(temp_dir)
42f3be2cf0ae 24667343 create-base-image leaves behind Dockerfile
Jesse Butler <jesse.butler@oracle.com>
parents: 6526
diff changeset
   108
        shutil.rmtree(temp_dir)
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   109
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   110
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   111
def build_parser():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   112
    parser_main = argparse.ArgumentParser()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   113
    parser_main.add_argument("-v", "--version", action="version",
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   114
        version="%(prog)s 0.1")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   115
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   116
    subparsers = parser_main.add_subparsers(title="sub-commands", metavar="")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   117
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   118
    parser_create = subparsers.add_parser("create-base-image",
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   119
        help="create a base image from host publisher content",
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   120
        usage=argparse.SUPPRESS)
6526
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
   121
    parser_create.add_argument("-D", "--devbuild", action="store_true",
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
   122
        help="use development build options for the package image")
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   123
    parser_create.add_argument("-p", "--profile",
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   124
        help="TEMPORARY: optional syconfig profile")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   125
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   126
    parser_create.set_defaults(func=create_base_image)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   127
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   128
    return parser_main
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   129
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   130
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   131
def main():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   132
    parser = build_parser()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   133
    args = parser.parse_args()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   134
    if not vars(args):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   135
        raise SystemExit(parser.print_help())
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   136
    return args.func(args)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   137
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   138
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   139
if __name__ == "__main__":
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   140
    sys.exit(main())