1CH-GROW(1)                       Charliecloud                       CH-GROW(1)
2
3
4

NAME

6       ch-grow - Build an image from a Dockerfile; completely unprivileged
7

SYNOPSIS

9          $ ch-grow [OPTIONS] [-t TAG] [-f DOCKERFILE] CONTEXT
10

DESCRIPTION

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

BUGS

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

REPORTING BUGS

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

SEE ALSO

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