Sponson is a tool to create and setup `systemd-nspawn` containers in a Docker-like way, without using Docker.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Sam Black 963b4f53a2
Merge branch 'feature/poetry' into develop
10 months ago
docs Add volume documentation. 5 years ago
selinux Update sponson selinux and add systemdmachine patch 6 years ago
services Americanize licence and name DBUS service directory properly 10 months ago
sponson Ensure we use the correct remote location when pulling images 10 months ago
.gitignore Ignore SonarQube scan logs 6 years ago
CHANGELOG.rst Add poetry config 10 months ago
LICENSE Americanize licence and name DBUS service directory properly 10 months ago
README.rst Bump minimum versions. 5 years ago
poetry.lock Add poetry config 10 months ago
pyproject.toml Don't require click>8.1 as this breaks fedora 36 RPM build 10 months ago
sponson.spec Add sponson RPM spec file 10 months ago

README.rst

====================
Lapwing.Org: Sponson
====================

About
=====

Sponson is a tool to create and setup ``systemd-nspawn`` containers
in a Docker-like way, without using Docker.


Requirements
============

- python3 >= 3.5
- Linux kernel >= 4.2 with ``overlayfs`` support
- Python3 DBUS bindings, provided by ``dbus-python``
- Python3 gobject bindings, provided by ``python3-gobject``
- systemd >= 234
- dnsmasq
- firewalld
- ostree
- lsof


For Fedora 27 Workstation, run
``dnf install systemd-container ostree lsof``

For Fedora 27 Cloud, run
``dnf install firewalld dnsmasq python3-gobject systemd-container ostree lsof``


nsswitch.conf
=============

To be able to connect with containers from the host,
`/etc/nsswitch.conf` requires `mymachines` in the `hosts` line,
for example

.. code::

   hosts: files dns mymachines


selinux
=======

If ``selinux`` is installed and enabled,
you will need to import a module to allow
sponson to setup the firewall when bringing up a container.

    sudo semodule -i {path to sponson}/selinux/sponson.pp

If the module does not import,
you can build the module using

    checkmodule -M -m -o {path to sponson}/selinux/sponson.mod {path to sponson}/selinux/sponson.te

    semodule_package -o {path to sponson}/selinux/sponson.pp -m {path to sponson}/selinux/sponson.mod

    sudo semodule -i {path to sponson}/selinux/sponson.pp

Fedora 25+ also seems to have faults with `machinectl` accessing `/var/lib/machines`,
so you might want to also use the provided `systemdmachine.pp`.


Licence
=======

Sponson is Copyright (C) 2015-2018 Sam Black samwwwblack@lapwing.org.

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/ <https://www.gnu.org/licenses/>`_.