// Copyright (C) 2014-2021 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 <http://www.gnu.org/licenses/>.

CONTAINER-CREATE-CURL(1)
========================
:doctype: manpage
:man manual: Open Infrastructure
:man source: compute-tools
:man version: {revnumber}


NAME
----
container-create-curl - Create a Debian based container by downloading a tarball over the network


SYNOPSIS
--------
*container create -s curl* ['OPTIONS']


DESCRIPTION
-----------
The curl container creation script uses curl(1) to download a tarball over the
network to create a Debian based container.

Depending on the tarball this script otherwise creates a pure Debian system with three modificiations:

  * hostname is set (container name) in /etc/hostname
  * systemd machine-id is generated in /etc/machine-id
  * root password is set (user specified or 16 random characters)


OPTIONS
-------
The following script options are available:

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

*-a, --architecture='ARCHITECTURE'*::
	Specify container architecture.

"--clean*::
	Remove downloaded tarball after successfull container creation.

*-p, --root-password='PASSWORD'*::
	Specify the root password, defaults to a random 16 character password.

*--server='SERVER'*::
	Specify the image server to download from, defaults to https://get.open-infrastructure.net/system/container/debian.

*--setup='SETUP'*::
	Specify the setup image name to download, defaults to the value specified through --system using the setup.tar.${COMPRESSION} suffix.

*--system='SYSTEM'*::
	Specify the system image name to download, defaults to debian-stretch-current_${ARCHITECTURE}.system.tar.${COMPRESSION} (where ${ARCHITECTURE} is the host systems architecture and ${COMPRESSION} either lz, xz, or gz depending on compressor availability on the host system).


EXAMPLES
--------
*Create a Debian 9 (stretch) based container with same architecture as the host system:*::
	sudo container create -s curl -n stretch.example.net

*Create a Debian 9 (stretch) based container with different architecture as the host system:*::
	sudo container create -s curl -n stretch-i386.example.net -- --system debian-stretch-current_i386.system.tar.xz

FILES
-----
The following files are used:

*/etc/open-infrastructure/container/config*::
	Container configuration files.

*/usr/share/open-infrastructure/container/scripts*::
	Container creation scripts.

*/usr/share/doc/compute-tools*::
	Container documentation.

*/var/lib/machines*::
	Container directory.

*/var/cache/open-infrastructure/container*::
	Container cache directory.


CONTAINER IMAGES
----------------

compute-tools will download tarballs from a server expecting that the images are tarballs with either gzip, lzip, xz, or no compression. See container-images.sh as an example on how to create your own container images.


SEE ALSO
--------
compute-tools(7),
container(1).


HOMEPAGE
--------
More information about compute-tools and the Open Infrastructure project can be found on the homepage at 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 at https://bugs.debian.org.


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