components/docker/files/docker-support
author John Beck <John.Beck@Oracle.COM>
Mon, 03 Oct 2016 15:32:26 -0700
changeset 7030 496c07261afc
parent 6526 f9817cae9bf4
child 7118 42f3be2cf0ae
permissions -rw-r--r--
24791247 lighttpd should use MySQL 5.5 on Solaris 11.3, 5.7 on S12
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
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     8
from subprocess import Popen, PIPE
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
     9
import sys
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    10
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    11
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    12
DOCKERFILE = """FROM scratch
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    13
ADD %(archive)s /
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    14
LABEL vendor="Oracle USA"
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    15
LABEL com.oracle.solaris.version.release="beta"
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    16
LABEL com.oracle.solaris.version.branch="%(osversion)s"
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    17
CMD /bin/bash
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
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    20
class DockerSupportCmd(object):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    21
    def __init__(self, cmd, verbose=False):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    22
        self.cmd = cmd
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    23
        self.verbose = verbose
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    24
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    25
    def run(self, expect_nonzero=None):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    26
        if self.verbose:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    27
            out = None
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    28
        else:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    29
            out = PIPE
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    30
        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
    31
        output, error = p.communicate()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    32
        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
    33
            raise RuntimeError(error)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    34
        return output
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
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    37
def docker_is_online():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    38
    try:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    39
        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
    40
            'docker']).run().strip() == 'online'
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    41
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    42
        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
    43
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    44
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    45
def get_os_version():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    46
    try:
6525
0acea8dd9c9a 24368928 docker-support create-base-image sets misleading os version tag
Jesse Butler <jesse.butler@oracle.com>
parents: 6524
diff changeset
    47
        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
    48
            'osnet/osnet-incorporation']).run()
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    49
        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
    50
            if line.startswith("Branch"):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    51
                return line.split(":")[1].strip()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    52
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    53
        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
    54
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    55
6526
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    56
def create_rootfs_archive(args):
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    57
    # we'll build the default archive, make sure we don't clobber one
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    58
    if os.path.exists("rootfs.tar.gz"):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    59
        raise RuntimeError("archive already exists 'rootfs.tar.gz'")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    60
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    61
    # build here with mkimage, send output to stdout
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    62
    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
    63
    if args.devbuild:
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    64
        cmd.append('-D')
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    65
    if args.profile:
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    66
        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
    67
            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
    68
        cmd.extend(['-c', args.profile])
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    69
    try:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    70
        DockerSupportCmd(cmd, verbose=True).run()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    71
        return "rootfs.tar.gz"
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    72
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    73
        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
    74
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    75
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    76
def create_base_image(args):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    77
    if not docker_is_online():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    78
        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
    79
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    80
    if os.path.exists("Dockerfile"):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    81
        raise SystemExit("Dockerfile already exists in working directory.")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    82
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    83
    try:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    84
        print "Creating container rootfs from host publishers..."
6526
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
    85
        rootfs = create_rootfs_archive(args)
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    86
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    87
        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
    88
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    89
    osversion = get_os_version()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    90
    with open("Dockerfile", "w") as dockerfile:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    91
        dockerfile.write(
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    92
            DOCKERFILE % {"archive": rootfs, "osversion": osversion})
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    93
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    94
    tag = "solaris:%s" % osversion
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    95
    print "Creating Docker base image '%s'..." % tag
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    96
    try: 
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    97
        DockerSupportCmd(
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
    98
            ["/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
    99
        DockerSupportCmd(
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   100
            ["/usr/bin/docker", "tag", tag, "solaris:latest"]).run()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   101
    except Exception as err:
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   102
        raise SystemExit("Failed image build: %s" % err)
6524
36d593a12044 24368970 docker-support create-base-image should remove rootfs bundle
Jesse Butler <jesse.butler@oracle.com>
parents: 6468
diff changeset
   103
36d593a12044 24368970 docker-support create-base-image should remove rootfs bundle
Jesse Butler <jesse.butler@oracle.com>
parents: 6468
diff changeset
   104
    assert os.path.exists("rootfs.tar.gz")
36d593a12044 24368970 docker-support create-base-image should remove rootfs bundle
Jesse Butler <jesse.butler@oracle.com>
parents: 6468
diff changeset
   105
    os.unlink("rootfs.tar.gz")
6468
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   106
    print "Build complete."
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   107
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   108
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   109
def build_parser():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   110
    parser_main = argparse.ArgumentParser()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   111
    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
   112
        version="%(prog)s 0.1")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   113
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   114
    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
   115
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   116
    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
   117
        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
   118
        usage=argparse.SUPPRESS)
6526
f9817cae9bf4 24368671 docker-support needs a 'dev-build' option
Jesse Butler <jesse.butler@oracle.com>
parents: 6525
diff changeset
   119
    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
   120
        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
   121
    parser_create.add_argument("-p", "--profile",
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   122
        help="TEMPORARY: optional syconfig profile")
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   123
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   124
    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
   125
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   126
    return parser_main
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
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   129
def main():
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   130
    parser = build_parser()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   131
    args = parser.parse_args()
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   132
    if not vars(args):
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   133
        raise SystemExit(parser.print_help())
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   134
    return args.func(args)
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   135
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   136
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   137
if __name__ == "__main__":
af5d82385cd7 PSARC/2016/354 Docker Engine 1.10.3
Jesse Butler <jesse.butler@oracle.com>
parents:
diff changeset
   138
    sys.exit(main())