1CH-GROW(1) Charliecloud CH-GROW(1)
2
3
4
6 ch-grow - Build an image from a Dockerfile; completely unprivileged
7
9 $ ch-grow [OPTIONS] [-t TAG] [-f DOCKERFILE] CONTEXT
10
12 WARNING:
13 This script is experimental. Please report the bugs you find so we
14 can fix them!
15
16 Build an image named TAG as specified in DOCKERFILE; use ch-run(1) to
17 execute RUN instructions. This builder is completely unprivileged, with
18 no setuid/setgid/setcap helpers.
19
20 ch-grow maintains state and temporary images using normal files and
21 directories. This storage directory can reside on any filesystem, and
22 its location is configurable. In descending order of priority:
23
24 -s, --storage DIR
25 Command line option.
26
27 $CH_GROW_STORAGE
28 Environment variable.
29
30 /var/tmp/ch-grow
31 Default.
32
33 NOTE:
34 Images are stored unpacked, so place your storage directory on a
35 filesystem that can handle the metadata traffic for large numbers of
36 small files. For example, the Charliecloud test suite uses approxi‐
37 mately 400,000 files and directories.
38
39 Other arguments:
40
41 CONTEXT
42 Context directory; this is the root of COPY and ADD instruc‐
43 tions in the Dockerfile.
44
45 -f, --file DOCKERFILE
46 Use DOCKERFILE instead of CONTEXT/Dockerfile.
47
48 -h, --help
49 Print help and exit.
50
51 -n, --dry-run
52 Do not actually excute any Dockerfile instructions.
53
54 --parse-only
55 Stop after parsing the Dockerfile.
56
57 --print-storage
58 Print the storage directory path and exit.
59
60 -t, -tag TAG
61 Name of image to create. Append :latest if no colon present.
62
63 --verbose
64 Print lots of debugging chatter.
65
66 --version
67 Print version number and exit.
68
70 This script executes RUN instructions with host EUID and EGID both
71 mapped to zero in the container, i.e., with ch-run --uid=0 gid=0. This
72 confuses many programs that appear in RUN, which see EUID 0 and/or EGID
73 0 and assume they can actually do privileged things, which then fail
74 with “permission denied” and related errors. For example, chgrp(1)
75 often appears in Debian package post-install scripts. We have worked
76 around some of these problems, but many remain; please report any you
77 find as bugs.
78
79 COPY and ADD source paths are not restricted to the context directory.
80 However, because ch-grow is completely unprivileged, this cannot be
81 used to add files not normally readable by the user to the image.
82
84 If Charliecloud was obtained from your Linux distribution, use your
85 distribution’s bug reporting procedures.
86
87 Otherwise, report bugs to: <https://github.com/hpc/charliecloud/issues>
88
90 charliecloud(1)
91
92 Full documentation at: <https://hpc.github.io/charliecloud>
93
95 2014–2018, Los Alamos National Security, LLC
96
97
98
99
100 2020-01-28 00:00 Coordinated Universal Time CH-GROW(1)