2018-03-20 17:41:19 +08:00
|
|
|
# buildah-add "1" "March 2017" "buildah"
|
2017-03-29 03:37:24 +08:00
|
|
|
|
|
|
|
## NAME
|
2018-04-26 21:01:15 +08:00
|
|
|
buildah\-add - Add the contents of a file, URL, or a directory to a container.
|
2017-03-29 03:37:24 +08:00
|
|
|
|
|
|
|
## SYNOPSIS
|
2018-06-30 03:39:36 +08:00
|
|
|
**buildah add** [*options*] *container* *src* [[*src* ...] *dest*]
|
2017-03-29 03:37:24 +08:00
|
|
|
|
|
|
|
## DESCRIPTION
|
2017-04-14 03:42:04 +08:00
|
|
|
Adds the contents of a file, URL, or a directory to a container's working
|
|
|
|
directory or a specified location in the container. If a local source file
|
|
|
|
appears to be an archive, its contents are extracted and added instead of the
|
|
|
|
archive file itself. If a local directory is specified as a source, its
|
|
|
|
*contents* are copied to the destination.
|
2017-03-29 03:37:24 +08:00
|
|
|
|
2017-11-30 22:34:02 +08:00
|
|
|
## OPTIONS
|
|
|
|
|
2019-01-19 04:39:58 +08:00
|
|
|
**--add-history**
|
|
|
|
|
|
|
|
Add an entry to the history which will note the digest of the added content.
|
|
|
|
Defaults to false.
|
|
|
|
|
|
|
|
Note: You can also override the default value of --add-history by setting the
|
|
|
|
BUILDAH\_HISTORY environment variable. `export BUILDAH_HISTORY=true`
|
|
|
|
|
2017-11-30 22:34:02 +08:00
|
|
|
**--chown** *owner*:*group*
|
|
|
|
|
|
|
|
Sets the user and group ownership of the destination content.
|
|
|
|
|
2020-11-19 21:14:58 +08:00
|
|
|
**--contextdir**
|
|
|
|
|
|
|
|
Build context directory. Specifying a context directory causes Buildah to
|
|
|
|
chroot into that context directory. This means copying files pointed at
|
|
|
|
by symbolic links outside of the chroot will fail.
|
|
|
|
|
|
|
|
**--ignorefile**
|
|
|
|
|
|
|
|
Path to an alternative .dockerignore file. Requires --contextdir be specified.
|
|
|
|
|
New CI check: xref --help vs man pages
Run 'buildah --help', recursively against all subcommands,
then cross-reference the results against docs/buildah*.md.
Report differences in subcommands and/or flags.
The majority of the changes in this PR are trivial (see
below) but a handful may be controversial and require
careful review:
* Making 'bud' the default output of 'buildah help',
with 'build-using-dockerfile' as an alias. This is
the inverse of the situation until now: buildah
would list build-using-dockerfile as the primary
name. The man page, OTOH, lists 'bud'. The source
file name is 'bud'. I suspect that most people
type 'bud'. So, for consistency, I choose to make
'bud' the default visible command.
* add --encryption-key and --encrypt-layer documentation
to buildah-commit.md, and --encrypt-layer to -push.md.
Please double-check the wording here.
* remove --notruncate from buildah-images.md. The option
does not exist (although there is a TODO comment in
the code). If it should exist, it is left to the
reader to implement. I would humbly suggest that this
is a good idea, for consistency with buildah containers.
* remove --shm-size from buildah-pull.md. The option
does not exist, and I suspect this was a copy-paste error.
* remove --security-opt from run.go. It was unimplemented
and undocumented.
* remove --userns-[gu]id-map from buildah-bud.md. These
are global options, not bud options, and are documented
well enough in buildah.bud.
Trivial (IMO) changes:
* split options in man pages, from '**--foo, -f**'
to '**--foo**, **-f**'. This conforms with the style
used in podman man pages.
* add missing one-letter aliases (usually "-q", "-a")
* add missing man page entries for some easy options
* sort out-of-order subcommand listings in man pages
Finally, do note that this is a copy-and-alter duplicate of the
original script in podman, and that is horrible. In an ideal
world I would've been able to refactor the podman version into
something usable on both repos (and then more). It turns out the
differences in man page format and in special-case handling are
too broad to let me do a clean refactor.
Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-09-21 22:51:19 +08:00
|
|
|
**--quiet**, **-q**
|
2018-06-08 22:52:52 +08:00
|
|
|
|
|
|
|
Refrain from printing a digest of the added content.
|
|
|
|
|
2017-03-29 03:37:24 +08:00
|
|
|
## EXAMPLE
|
2017-04-14 03:42:04 +08:00
|
|
|
|
|
|
|
buildah add containerID '/myapp/app.conf' '/myapp/app.conf'
|
|
|
|
|
2017-11-30 22:34:02 +08:00
|
|
|
buildah add --chown myuser:mygroup containerID '/myapp/app.conf' '/myapp/app.conf'
|
|
|
|
|
2017-04-14 03:42:04 +08:00
|
|
|
buildah add containerID '/home/myuser/myproject.go'
|
|
|
|
|
|
|
|
buildah add containerID '/home/myuser/myfiles.tar' '/tmp'
|
|
|
|
|
|
|
|
buildah add containerID '/tmp/workingdir' '/tmp/workingdir'
|
|
|
|
|
2018-09-18 03:20:16 +08:00
|
|
|
buildah add containerID 'https://github.com/containers/buildah/blob/master/README.md' '/tmp'
|
2017-04-14 03:42:04 +08:00
|
|
|
|
|
|
|
buildah add containerID 'passwd' 'certs.d' /etc
|
2017-03-29 03:37:24 +08:00
|
|
|
|
2020-08-05 01:54:08 +08:00
|
|
|
## FILES
|
|
|
|
|
2020-11-19 21:14:58 +08:00
|
|
|
### .dockerignore
|
2020-08-05 01:54:08 +08:00
|
|
|
|
2020-11-19 21:14:58 +08:00
|
|
|
When the \fB\fC\-\-ignorefile\fR option is specified Buildah reads the
|
|
|
|
content to exclude files and directories from the source directory, when
|
|
|
|
copying content into the image.
|
2020-08-05 01:54:08 +08:00
|
|
|
|
2020-12-22 00:19:56 +08:00
|
|
|
Users can specify a series of Unix shell globals in a ignore file to
|
2020-08-07 16:59:27 +08:00
|
|
|
identify files/directories to exclude.
|
2020-08-05 01:54:08 +08:00
|
|
|
|
|
|
|
Buildah supports a special wildcard string `**` which matches any number of
|
|
|
|
directories (including zero). For example, **/*.go will exclude all files that
|
|
|
|
end with .go that are found in all directories.
|
|
|
|
|
|
|
|
Example .dockerignore file:
|
|
|
|
|
|
|
|
```
|
2020-08-07 16:59:27 +08:00
|
|
|
# here are files we want to exclude
|
|
|
|
*/*.c
|
|
|
|
**/output*
|
|
|
|
src
|
2020-08-05 01:54:08 +08:00
|
|
|
```
|
|
|
|
|
2020-08-07 16:59:27 +08:00
|
|
|
`*/*.c`
|
|
|
|
Excludes files and directories whose names ends with .c in any top level subdirectory. For example, the source file include/rootless.c.
|
2020-08-05 01:54:08 +08:00
|
|
|
|
2020-08-07 16:59:27 +08:00
|
|
|
`**/output*`
|
|
|
|
Excludes files and directories starting with `output` from any directory.
|
2020-08-05 01:54:08 +08:00
|
|
|
|
2020-08-07 16:59:27 +08:00
|
|
|
`src`
|
|
|
|
Excludes files named src and the directory src as well as any content in it.
|
2020-08-05 01:54:08 +08:00
|
|
|
|
|
|
|
Lines starting with ! (exclamation mark) can be used to make exceptions to
|
|
|
|
exclusions. The following is an example .dockerignore file that uses this
|
|
|
|
mechanism:
|
|
|
|
```
|
2020-08-07 16:59:27 +08:00
|
|
|
*.doc
|
|
|
|
!Help.doc
|
2020-08-05 01:54:08 +08:00
|
|
|
```
|
|
|
|
|
2020-08-07 16:59:27 +08:00
|
|
|
Exclude all doc files except Help.doc from the image.
|
2020-08-05 01:54:08 +08:00
|
|
|
|
2020-08-07 16:59:27 +08:00
|
|
|
This functionality is compatible with the handling of .dockerignore files described here:
|
2020-08-05 01:54:08 +08:00
|
|
|
|
|
|
|
https://docs.docker.com/engine/reference/builder/#dockerignore-file
|
|
|
|
|
2017-03-29 03:37:24 +08:00
|
|
|
## SEE ALSO
|
|
|
|
buildah(1)
|