ch-build - Man Page

Build an image and place it in the builder's back-end storage

Synopsis

$ ch-build [-b BUILDER] [--builder-info] -t TAG [ARGS ...] CONTEXT

Description

WARNING:

This script is deprecated in favor of using the desired builder directly; we have added some tips for Docker to the FAQ. It will be removed in the next release.

Build an image named TAG described by a Dockerfile. Place the result into the builder’s back-end storage.

Using this script is not required for a working Charliecloud image. You can also use any builder that can produce a Linux filesystem tree directly, whether or not it is in the list below. However, this script hides the vagaries of making the supported builders work smoothly with Charliecloud and adds some conveniences (e.g., pass HTTP proxy environment variables to the build environment if the builder doesn’t do this by default).

Supported builders, unprivileged:

Supported builders, privileged:

Experimental builders (i.e., the code is there but not tested much):

Specifying the builder, in descending order of priority:

-b, --builder BUILDER

Command line option.

$CH_BUILDER

Environment variable

Default

docker if Docker is installed; otherwise, ch-image.

Other arguments:

--builder-info

Print the builder to be used and its version, then exit.

-f,  --file DOCKERFILE

Dockerfile to use (default: $CONTEXT/Dockerfile)

-t TAG

Name (tag) of Docker image to build.

--help

Print help and exit.

--version

Print version and exit.

Additional arguments are accepted and passed unchanged to the underlying builder.

Bugs

The tag suffix :latest is somewhat misleading, as by default neither ch-build nor bare builders will notice if the base FROM image has been updated. Use --pull to make sure you have the latest base image.

Examples

Create an image tagged foo and specified by the file Dockerfile located in the context directory. Use /bar as the Docker context directory. Use the default builder.

$ ch-build -t foo /bar

Equivalent to above:

$ ch-build -t foo --file=/bar/Dockerfile /bar

Instead, use /bar/Dockerfile.baz:

$ ch-build -t foo --file=/bar/Dockerfile.baz /bar

Equivalent to the first example, but use ch-image even if Docker is installed:

$ ch-build -b ch-image -t foo /bar

Equivalent to above:

$ export CH_BUILDER=ch-image
$ ch-build -t foo /bar

Reporting Bugs

If Charliecloud was obtained from your Linux distribution, use your distribution’s bug reporting procedures.

Otherwise, report bugs to: https://github.com/hpc/charliecloud/issues

See Also

charliecloud(7)

Full documentation at: <https://hpc.github.io/charliecloud>

Referenced By

charliecloud(7), ch-builder2tar(1), ch-test(1).

2023-01-18 00:00 UTC 0.26 Charliecloud