.. Open Infrastructure: compute-tools

.. Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
..
.. SPDX-License-Identifier: GPL-3.0+
..
.. This program is free software: you can redistribute it and/or modify
.. it under the terms of the GNU General Public License as published by
.. the Free Software Foundation, either version 3 of the License, or
.. (at your option) any later version.
..
.. This program is distributed in the hope that it will be useful,
.. but WITHOUT ANY WARRANTY; without even the implied warranty of
.. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.. GNU General Public License for more details.
..
.. You should have received a copy of the GNU General Public License
.. along with this program.  If not, see <https://www.gnu.org/licenses/>.

===============
container-build
===============

-----------------
Build a container
-----------------

:manual section: 1
:manual group: Open Infrastructure

Synopsis
========

| **container build** ['OPTIONS']
| **cnt b** ['OPTIONS']

Description
===========

The **container build** command builds a container based on a script.

Scripts
-------

The following build scripts are available:

debootstrap:
  Basic script to build Debian based container, see
  container-build-debootstrap(1).

debconf:
  Advanced script to automatically build Debian based container, see
  container-build-debconf(1).

default:
  Symlink (if existing) to a build script which is used if no script was
  specified. On Debian based system this can be managed through
  update-alternatives(1), i.e. 'sudo update-alternatives --config
  container_build-script'.

Options
=======

The following **container build** options are available:

-n, --name='NAME':
  Specify container name.

-c, --capability='CAPABILITY':
  Specify capabilities to grant, see capabilities(7).

-d, --drop-capability='DROP_CAPABILITY':
  Specify capabilities to drop, see capabilities(7).

-s, --script='SCRIPT':
  Specify container build script, defaults to 'debootstrap'.

-v, --verbose:
  Explain what is being done.

-b, --bind='DIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]':
  Specify container read-write bind mounts, see systemd-nspawn(1) --bind option.

--bind-ro='DIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]':
  Specify container read-only bind mounts, see systemd-nspawn(1) --bind-ro
  option.

--cnt-overlay='DIRECTORY_LOWER:DIRECTORY_UPPER:DIRECTORY_WORK:DIRECTORY_MERGED[;DIRECTORY_UPPER:DIRECTORY_LOWER:DIRECTORY_WORK:DIRECTORY_MERGED]':
  Specify container overlay mounts, see Documentation/filesystems/overlayfs.txt.

--cnt.overlay-options='OPTION1,OPTION2[;OPTION3,OPTION4]':
  Specify container overlay mount options, see
  Documentation/filesystems/overlayfs.txt.

--cnt.start='OPTION1[,OPTION2,...]':
  Specify container start options, see container-start(1).

Examples
========

Build example.net container using debootstrap script:

  sudo container build -n example.net -s debootstrap

Build example.net container using debconf script:

  sudo container build -n example.net -s debconf

Build example.net container with the default build script and start it:

  sudo container build,start -n example.net

See also
========

| compute-tools(7),
| container(1).

Homepage
========

More information about compute-tools and the Open Infrastructure project can be
found on the homepage (https://open-infrastructure.net).

Contact
=======

Bug reports, feature requests, help, patches, support and everything else are
welcome on the Open Infrastructure Software Mailing List
<software@lists.open-infrastructure.net>.

Debian specific bugs can also be reported in the Debian Bug Tracking System
(https://bugs.debian.org).

Authors
=======

compute-tools were written by Daniel Baumann
<daniel.baumann@open-infrastructure.net> and others.
