Tool for interactive command line environments on Linux
Find a file
Debarshi Ray 0c848abd18 Give access to removable devices and other temporary mounts
Currently, when udisks is configured to use /run/media instead of
/media, on most operating systems, the /run/media directory is created
by udisks itself when the first mount is handled [1]. This causes
problems when creating the toolbox container, if nothing has been
mounted after the current boot, because a missing directory cannot be
bind mounted.

Fedora Silverblue is a significant exception to the above, where
rpm-ostree takes care of creating /run/media with systemd-tmpfiles [2]
during boot.

The correct long-term solution is to get udisks to create /run/media
during boot with systemd-tmpfiles by installing a snippet in
tmpfiles.d [3, 4]. Until that happens, and is widely deployed, the
toolbox needs to provide the snippet itself to make things work on
the majority of operating systems.

Note that, in case udisks is configured to use /media instead of
/run/media, then this will create an unused /run/media directory. This
is probably fine because /run/media is the default setting for udisks.
Moreover, an unused directory is way better than not being able to
access mount points from a toolbox container or having 'podman create'
fail due to a missing directory.

Based on 4a2a15f2eb and as suggested by
Daniel J Walsh.

[1] UDisks commit aa02e5fc53efdeaf
    https://github.com/storaged-project/udisks/commit/aa02e5fc53efdeaf
[2] rpm-ostree commit 958dfa435e4e4a3e
    https://github.com/projectatomic/rpm-ostree/commit/958dfa435e4e4a3e
[3] https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
[4] https://github.com/storaged-project/udisks/pull/641

https://github.com/debarshiray/toolbox/issues/3
2019-03-13 15:48:03 +01:00
data Give access to removable devices and other temporary mounts 2019-03-13 15:48:03 +01:00
doc doc: Fix the installation of manuals 2019-03-06 17:08:22 +01:00
images/fedora images: Restore documentation removed from the base Fedora images 2019-03-05 18:01:27 +01:00
COPYING Rename LICENSE as COPYING 2018-10-19 18:24:23 +02:00
gen-docs-list images: Restore documentation removed from the base Fedora images 2019-03-05 18:01:27 +01:00
meson.build Give access to removable devices and other temporary mounts 2019-03-13 15:48:03 +01:00
NEWS Prepare 0.0.6 2019-02-21 19:47:56 +01:00
README.md README.md: Add missing comma 2019-03-01 10:26:58 +01:00
toolbox Give access to removable devices and other temporary mounts 2019-03-13 15:48:03 +01:00
toolbox-sudo Drop the "fedora" prefix and rename the project as just "toolbox" 2019-02-15 16:36:30 +01:00

Toolbox — Unprivileged development environment

Toolbox is a tool that offers a familiar RPM based environment for developing and debugging software that runs fully unprivileged using Podman.

The toolbox container is a fully mutable container; when you see yum install ansible for example, that's something you can do inside your toolbox container, without affecting the base operating system.

This is particularly useful on OSTree based Fedora systems like Silverblue. The intention of these systems is to discourage installation of software on the host, and instead install software as (or in) containers.

However, this tool doesn't require using an OSTree based system — it works equally well if you're running e.g. existing Fedora Workstation or Server, and that's a useful way to incrementally adopt containerization.

The toolbox environment is based on an OCI image. On Fedora this is the fedora-toolbox image. This image is then customized for the current user to create a toolbox container that seamlessly integrates with the rest of the operating system.

Usage

Create your toolbox container:

[user@hostname ~]$ toolbox create
[user@hostname ~]$

This will create a container, and an image, called fedora-toolbox-<your-username>:<version-id> that's specifically customised for your host user.

Enter the toolbox:

[user@hostname ~]$ toolbox enter
🔹[user@toolbox ~]$