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-- |
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()) |